[swift-evolution] [DRAFT] Introducing a Debug Build Configuration Test

Erica Sadun erica at ericasadun.com
Tue Mar 15 11:31:30 CDT 2016


I would like to update my draft proposal to introduce a test for debug configurations using a public function
rather than a build configuration test.

* Would the stdlib team be open to that? 
* What would be an appropriate name?  `debugConfiguration`? `debugBuild`? `isDebugBuild`? `isDebugConfiguration`?

-- E


> On Mar 15, 2016, at 10:21 AM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
> 
> A function can absolutely can do that, if it is implemented using a
> builtin known to the optimizer.
> 
> Dmitri
> 
> On Tue, Mar 15, 2016 at 9:20 AM, Shawn Erickson <shawnce at gmail.com> wrote:
>> You would likely want to ensure debug related code could be optimized away /
>> or not be included in release builds. I am not sure how a function would
>> achieve that.
>> On Tue, Mar 15, 2016 at 9:15 AM Erica Sadun via swift-evolution
>> <swift-evolution at swift.org> wrote:
>>> 
>>> 
>>> 
>>> On Mar 14, 2016, at 2:04 PM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>>> Hi Erica,
>>> 
>>> Based on Joe's rationale that you are quoting, I think the intent is
>>> that we want to restrict this directive to be statement-level only.
>>> The API vended by a module should not be affected by the build mode.
>>> 
>>> Dmitri
>>> 
>>> 
>>> 
>>> Could the debug build test take the form of a standard non-private
>>> function then
>>> instead of _isDebugAssertConfiguration()? If the test is limited to
>>> methods,
>>> introducing #if-style tests would be ugly.
>>> 
>>> How likely or easy is it for me to reframe the request for testing for
>>> debug to be as
>>> simple as:
>>> 
>>> `if debugBuild() {...}`
>>> 
>>> with `debugBuild` vended by the standard library instead of as a build
>>> configuration test?
>>> 
>>> -- E
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> 
> -- 
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/



More information about the swift-evolution mailing list