Ah, for a sidenote, it struck me this library extremely easily can be wrapped into a "SRFI 75: Unicode" implementation almost only through procedure renaming.<div><br></div><div><div>For SRFI 75: Unicode, see: <a href="http://srfi.schemers.org/srfi-75/srfi-75.html">http://srfi.schemers.org/srfi-75/srfi-75.html</a></div>

</div><div><br></div><div>So, this is just to mention that all the functionality of SRFI 75 is already implemented within the combo of Gambit + this Unicode lib.</div><div><br></div><div>If anyone would see a reason for bringing this functionality into the exact naming used in SRFI 75 and releasing this under the name of a "srfi75" wrapper library (spontaneously I didn't quite see any reason for this til now, except for perhaps cross-Scheme-system-compatibility reasons), you're free to mention this here and/or implement it.</div>

<div><br></div><div><div>Brgds,</div><div>M</div></div><div><br></div><div><br></div><div>Basically Gambit already implements 80% of SRFI 75 by it using Unicode fully internally and in all of its char and string representaitons, the only remaining things being case-insensitive comparison and upcasing/downcasing operations i.e.</div>

<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><font face="courier new, monospace">string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?</font></div></div><div>
<div>
<font face="courier new, monospace">char-ci<? char-ci=? char-ci=?</font></div></div><div><div><font face="courier new, monospace">char-upper-case? char-lower-case? char-title-case? char-title-case?</font></div></div><div>

<div><font face="courier new, monospace"><br></font></div></div><div><div><font face="courier new, monospace">char-upcase char-downcase char-titlecase char-foldcase</font></div></div><div><div><font face="courier new, monospace">string-upcase string-downcase string-foldcase string-titlecase</font></div>

</div></blockquote><div><br></div><div>These, Gambit essentially implements but regarding the US charset only. This Unicode library implements them for the entire Unicode standard but under different function names. (I believe the functionality is implemented exactly according to the SRFI 75 spec, though this would need to be double-checked and if anything needs to be adjusted to match, it ought to be completely minor.)</div>

<div><br></div><div>Perhaps there could be a benefit of having the Gambit-provided ANSI-only correspondents of the abovementioned procedures left referred to under some name though. Perhaps even the original name, and thus having the unicode ones under separate names, as it is with this Unicode lib already.</div>

<div><div><br></div><div><br></div><div class="gmail_quote">2012/5/21 Mikael <span dir="ltr"><<a href="mailto:mikael.rcv@gmail.com" target="_blank">mikael.rcv@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>Hi guys,</div><div><br></div><div>A Unicode library for Gambit has been released.</div><div><br></div><div>Many thanks to Florian Loitsch for releasing the Unicode library for Bigloo, of which this library in many respects is a port.</div>



<div><br></div><div>The Unicode library for Gambit does the following Unicode handling:</div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">     unicode-char-upper unicode-char-lower</font></div>


<div><font face="courier new, monospace">     unicode-string-upper unicode-string-upper! ; "aBc" => "ABC"</font></div>

<div><font face="courier new, monospace">     unicode-string-lower unicode-string-lower! ; "aBc" => "abc"</font></div><div><font face="courier new, monospace">     unicode-string-capitalize-strict! unicode-string-capitalize-strict ; "aBc" => "Abc"</font></div>



<div><font face="courier new, monospace">
     string-unicode-ci<? string-unicode-ci<=? string-unicode-ci=? string-unicode-ci>? string-unicode-ci>=?</font></div><div><br></div><div>It runs out of the box on vanilla Gambit and on Black Hole.</div><div>


<br></div>

<div>License is New BSD.</div><div><br></div><div>It's both released on the Dumping grounds <a href="http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Dumping_Grounds" target="_blank">http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Dumping_Grounds</a> and on GitHub at <a href="https://github.com/m-i-k-a-e-l/gambit-unicode" target="_blank">https://github.com/m-i-k-a-e-l/gambit-unicode</a> .</div>



<div><br></div><div>For some more info, please see the copy of the library headers below.</div>
<div><br></div><div>Kind regards,</div><div>Mikael</div><div><br></div><div> - </div><div><br></div><div><font face="courier new, monospace">Gambit Unicode library 1.0</font></div><div><font face="courier new, monospace">New BSD license</font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Enables Gambit Scheme with Unicode handling features.</font></div>

<div><font face="courier new, monospace">Runs out of the box on vanilla Gambit and on Black Hole.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">The Gambit-specific code and distribution:</font></div>


<div><font face="courier new, monospace">Copyright (C) 2010-2012 Mikael More</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">The unicode-data.scm generator and Bigloo unicode library this library was inspired by,</font></div>




<div><font face="courier new, monospace">found in the bigloo-unicode directory:</font></div><div><font face="courier new, monospace">Copyright (C) 2007-2012 Florian Loitsch</font></div><div><font face="courier new, monospace"><br>


</font></div><div><font face="courier new, monospace">The source data for the unicode-data.scm generator, found in the bigloo-unicode/data directory:</font></div>
<div><font face="courier new, monospace">
Copyright (C) 1991-2011 Unicode, Inc.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">## Exports</font></div><div><font face="courier new, monospace">unicode-char-upper</font></div>


<div><font face="courier new, monospace">unicode-char-lower</font></div><div><font face="courier new, monospace">unicode-string-upper unicode-string-upper! ; "aBc" => "ABC"</font></div>

<div><font face="courier new, monospace">unicode-string-lower unicode-string-lower! ; "aBc" => "abc"</font></div><div><font face="courier new, monospace">unicode-string-capitalize-strict! ; "aBc" => "Abc"</font></div>


<div><font face="courier new, monospace">unicode-string-capitalize-strict  ;</font></div>

<div><font face="courier new, monospace">string-unicode-ci<?</font></div><div><font face="courier new, monospace">string-unicode-ci<=?</font></div><div><font face="courier new, monospace">string-unicode-ci=?</font></div>


<div><font face="courier new, monospace">string-unicode-ci>?</font></div><div><font face="courier new, monospace">string-unicode-ci>=?</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">## Relation with Bigloo Unicode library. Intended scope of use of this library.</font></div>




<div><font face="courier new, monospace">This library is based on the Unicode library for Bigloo Scheme by Florian Loitsch, as bundled</font></div><div><font face="courier new, monospace">with the js2scheme distribution as found on <a href="http://code.google.com/p/js2scheme/source/browse/" target="_blank">http://code.google.com/p/js2scheme/source/browse/</a> .</font></div>




<div><font face="courier new, monospace">     A copy of this library is provided in this distribution in the bigloo-unicode directory,</font></div><div><font face="courier new, monospace">to enable you to easily generate Unicode constants based on any new Unicode Character Database</font></div>


<div><font face="courier new, monospace">versions.</font></div>

<div><font face="courier new, monospace">     The vesion of the Bigloo Unicode library bundled here is was pulled from the abovementioned</font></div><div><font face="courier new, monospace">repo the 13:t of May 2012. Florian's last changes were the 12:th of March 2011. Florian's code is</font></div>




<div><font face="courier new, monospace">to be viewed as stable since at least 2010, to the best of my knowledge the only changes since</font></div><div><font face="courier new, monospace">then have been minor restructurings.</font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Please note that the scope of this library and the Bigloo unicode library are different, in that</font></div>

<div><font face="courier new, monospace">Gambit has complete native Unicode character handling and charset encoding/decoding features</font></div><div><font face="courier new, monospace">built-in and thus none of this needs to be provided in a separate library, whereas the</font></div>


<div><font face="courier new, monospace">Bigloo Unicode library provides such functionality to Bigloo.</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">## Distribution overview</font></div><div><font face="courier new, monospace">unicode.scm           - The Gambit Unicode handling library</font></div>


<div><font face="courier new, monospace">unicode-data.scm      - The constants required to make unicode.scm spin.</font></div><div><font face="courier new, monospace">                        Generated out of the Unicode Character Database.</font></div>




<div><font face="courier new, monospace">bigloo-unicode/*      - Florian Loitsch's unicode-data.scm generator, and Bigloo Unicode library</font></div><div><font face="courier new, monospace">                        that was used as inspiration for making this library.</font></div>


<div><font face="courier new, monospace">                        Use this to generate a new unicode-data.scm out of a Unicode Character</font></div>

<div><font face="courier new, monospace">                        Database update, if that would ever be released and relevant.</font></div><div><font face="courier new, monospace">                        Latest version as of the 13:th of May 2012, see more above.</font></div>


<div><font face="courier new, monospace">bigloo-unicode/data/* - The required files of the Unicode Character Database, see below.</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">## How to update unicode-data.scm with a new version of the Unicode Character Database</font></div><div><font face="courier new, monospace">In case by any reason this would ever be relevant, here is how to proceed:</font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Update the bigloo-unicode/data/ files (namely SpecialCasing.txt and UnicodeData.txt) with</font></div>

<div><font face="courier new, monospace">the new Unicode Character Database files.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">As of the date of writing, these are released on</font></div>


<div><font face="courier new, monospace"><a href="http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt" target="_blank">http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt</a> and</font></div>

<div><font face="courier new, monospace"><a href="http://www.unicode.org/Public/UNIDATA/UnicodeData.txt" target="_blank">http://www.unicode.org/Public/UNIDATA/UnicodeData.txt</a> ,</font></div><div><font face="courier new, monospace">and you can see the release date of the latest update of them on</font></div>



<div><font face="courier new, monospace"><a href="http://www.unicode.org/Public/UNIDATA/" target="_blank">http://www.unicode.org/Public/UNIDATA/</a> .</font></div>
<div><br></div>
</blockquote></div><br></div>