<div><span class="gmail_quote">On 10/14/07, <b class="gmail_sendername">Tomas Matousek</b> <<a href="mailto:Tomas.Matousek@microsoft.com">Tomas.Matousek@microsoft.com</a>> wrote:</span></div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div lang="EN-US" vlink="purple" link="blue">
<div>
<p><span style="FONT-SIZE: 11pt; COLOR: red">Yes, you're right it seems redundant but unfortunately it's not. The problem is that our (i.e. DLR's) NotNull attribute is currently not understood by Spec# (static verifier). It's only influencing the overload resolution, nothing else. So Spec# would complain that you're
e.g. "dotting thru" a variable that might be null.</span></p></div></div></blockquote>
<div>Ah, I didn't realize there was a program looking directly at the source code.</div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div lang="EN-US" vlink="purple" link="blue">
<div>
<div>
<p><span style="FONT-SIZE: 11pt; COLOR: red">If you can define a macro in your favorite text editor, this is the right use of that feature. </span></p></div></div></div></blockquote>
<div>:)</div>
<div> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div lang="EN-US" vlink="purple" link="blue">
<div>
<div>
<p><span style="FONT-SIZE: 11pt; COLOR: red">Yes, we accept contributions to libraries, i.e. to IronRuby.Libraries.dll. Although MutableString class will stay where it is, Ruby method implementations for MutableString will soon get factored out to the Libraries assembly. Hence we could take your contribution then if it will be correct and efficient.
</span></p></div></div></div></blockquote>
<div>I see that the operations have now been factored out into MutableStringOps.cs, presumably in preparation for this migration. If it's not premature, there's an updated patch file (is that the preferred format?) at
<a href="http://hagenlocher.org/software/MutableStringOps.scan.patch.txt">http://hagenlocher.org/software/MutableStringOps.scan.patch.txt</a> which incorporates implementations for scan, upto, swapcase and swapcase!, as well as tests for all of these changes in
test.string.rb.</div>
<div> </div>
<div>These days, i18n is at the top of my brain as my company works on internationalizing its product. It's charmingly quaint to see that IronRuby (and presumably Ruby) have explicit tests against the ranges 'A'-'Z' and 'a'-'z' for purposes of checking and changing the case of individual letters :).
</div>
<div> </div>
<div>--</div>
<div>Curt Hagenlocher</div>
<div><a href="mailto:curt@hagenlocher.org">curt@hagenlocher.org</a></div>