<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I like something that has a verb. We don't expect humans to write this directive, so we should optimize to prevent accidental use of this where you really wanted #line. #setline is better than #sourceline by that metric.</div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 3, 2016, at 6:54 PM, Kevin Ballard via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<title class=""></title>
<div class=""><div class="">I'm in favor of #setline. It has as nice match to #line because #setline changes the value that #line returns.<br class=""></div>
<div class=""> </div>
<div class="">-Kevin Ballard<br class=""></div>
<div class=""> </div>
<div class="">On Wed, Feb 3, 2016, at 06:19 PM, Erica Sadun via swift-evolution wrote:<br class=""></div>
<blockquote type="cite" class=""><div class="">#source is already earmarked for future directions.<br class=""></div>
<div class=""> </div>
<div class=""><div class="">I'm thinking #setline and #sourceline are both good.<br class=""></div>
<div class=""><div class=""> </div>
<div class=""><blockquote type="cite" class=""><div class="">On Feb 3, 2016, at 6:58 PM, Sean Heber <<a href="mailto:sean@fifthace.com" class="">sean@fifthace.com</a>> wrote:<br class=""></div>
<div class=""> </div>
<div class=""><div class=""><div class="">I like that reasoning. I'd suggest even simpler and go with #source since it also can include a file name.<br class=""></div>
<div class=""> </div>
<div class="">l8r<br class=""></div>
<div class=""><div class="">Sean<br class=""></div>
<div class=""> </div>
<div class="">Sent from my iPad<br class=""></div>
</div>
<div class=""><div class=""> </div>
<div class="">On Feb 3, 2016, at 7:32 PM, Jonathan Tang via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:<br class=""></div>
</div>
<blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">The primary use for the existing #line directive is for generated code like parser/lexer generators, right? If so, how about #sourceline, since it represents the line number in the original source code? I'm also fine with #setline, but don't like #linenumber because it's not clear what the difference is between it and #line.<br class=""></div>
<div class=""> </div>
<div class="">Actually, it'd also be used to reset the line number back to the generated code, right? In that case, #sourceline seems awkward, and maybe I'll just go with +1 to #setline.<br class=""></div>
</div>
<div class=""><div class=""> </div>
<div class=""><div class="">On Wed, Feb 3, 2016 at 5:24 PM, Erica Sadun via swift-evolution <span dir="ltr" class=""><<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>></span> wrote:<br class=""></div>
<blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex;" class=""><div style="word-wrap:break-word;" class=""><div class="">Swift Evolution SE-0028 (<a href="https://github.com/apple/swift-evolution/blob/master/proposals/0028-modernizing-debug-identifiers.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0028-modernizing-debug-identifiers.md</a>) overloads<br class=""></div>
<div class=""><div class="">the use of #line to mean both an identifier that maps to a calling site's line number with a file and acts as part of a line control statement with the following grammar:<br class=""></div>
<div class=""><div class=""> </div>
<div class=""><div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;font-family:Helvetica, Arial, sans-serif;" class=""><span class="colour" style="color:rgb(128, 128, 128)"><i class="">line-control-statement </i></span><span class="colour" style="color:rgb(128, 128, 128)">→ </span><code style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;font-size:0.86em;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:4px;padding-bottom:0px;padding-left:4px;vertical-align:baseline;font-family:Menlo, monospace;font-weight:600;word-wrap:break-word;" class="">#line</code><br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;font-family:Helvetica, Arial, sans-serif;" class=""><a style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:85px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;display:block;width:0px;min-height:0px;color:rgb(0, 136, 204);" class=""></a><span class="colour" style="color:rgb(128, 128, 128)"><i class="">line-control-statement </i></span><span class="colour" style="color:rgb(128, 128, 128)">→ </span><code style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;font-size:0.86em;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:4px;padding-bottom:0px;padding-left:4px;vertical-align:baseline;font-family:Menlo, monospace;font-weight:600;word-wrap:break-word;" class="">#line</code><i class=""><a style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;color:rgb(0, 136, 204);text-decoration:none;" href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html#//apple_ref/swift/grammar/line-number" class="">line-number</a></i><i class=""><a style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;color:rgb(0, 136, 204);text-decoration:none;" href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html#//apple_ref/swift/grammar/file-name" class="">file-name</a></i><br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;font-family:Helvetica, Arial, sans-serif;" class=""><a style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:85px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;display:block;width:0px;min-height:0px;color:rgb(0, 136, 204);" class=""></a><span class="colour" style="color:rgb(128, 128, 128)"><i class="">line-number </i></span><span class="colour" style="color:rgb(128, 128, 128)">→ </span><span style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class="">A decimal integer greater than zero</span><br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;font-family:Helvetica, Arial, sans-serif;" class=""><a style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:85px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;display:block;width:0px;min-height:0px;color:rgb(0, 136, 204);" class=""></a><span class="colour" style="color:rgb(128, 128, 128)"><i class="">file-name </i></span><span class="colour" style="color:rgb(128, 128, 128)">→ </span><i class=""><a style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;color:rgb(0, 136, 204);text-decoration:none;" href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/LexicalStructure.html#//apple_ref/swift/grammar/static-string-literal" class="">static-string-literal</a></i><br class=""></div>
</div>
</div>
</div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;font-family:Helvetica, Arial, sans-serif;" class=""> </div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class="">The accepted implementation of SE-0028 disambiguates the two by requiring #line (the control statement) to appear at the first column for the time being. This is a stop-gap solution best remedied by renaming #line. <br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class=""> </div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class="">Chris Lattner writes, "The core team isn’t thrilled with the magic “first token on a line” whitespace behavior that #line will be getting, and would like someone to start a discussion about renaming the old #line directive to something more specific and tailored to its purpose. Once that name and syntax is settled, we can rename the directive and remove the whitespace rule."<br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class=""> </div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class="">I'd recommend <span class="font" style="font-family:Menlo">#setline</span> or <span class="font" style="font-family:Menlo">#linenumber</span>. Starting this thread to solicit other suggestions.<br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class=""> </div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class="">Best, -- E<br class=""></div>
<div style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:initial;border-right-style:initial;border-bottom-style:initial;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:initial;border-left-color:initial;border-image-source:initial;border-image-slice:initial;border-image-width:initial;border-image-outset:initial;border-image-repeat:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;outline-width:0px;outline-color:initial;outline-style:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;vertical-align:baseline;" class=""> </div>
</div>
<div class=""> </div>
<div class="">_______________________________________________<br class=""></div>
<div class="">
swift-evolution mailing list<br class=""></div>
<div class=""> <a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""></div>
<div class=""> <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div>
<div class=""> </div>
</blockquote></div>
</div>
</div>
</blockquote><blockquote type="cite" class=""><div class=""><div class=""><span class="">_______________________________________________</span><br class=""></div>
<div class=""><span class="">swift-evolution mailing list</span><br class=""></div>
<div class=""><span class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a></span><br class=""></div>
<div class=""><span class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br class=""></div>
</div>
</blockquote></div>
</div>
</blockquote></div>
</div>
</div>
<div class=""><u class="">_______________________________________________</u><br class=""></div>
<div class="">swift-evolution mailing list<br class=""></div>
<div class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""></div>
<div class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div>
</blockquote><div class=""> </div>
</div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>