On 20/03/2011 05:04, Will Robertson wrote:
> I've been mentioning here-and-there recently that I've been attempting to translate the NFSS into expl3 for eventual use in the LaTeX3 code.
> There are a few reasons for this:
> * Comparison: The NFSS contains highly optimised code that is not very readable; translating it into expl3 gives us a way to re-evaluate this readability/efficiency trade-off for a complex amount of code.
> * Extensibility: The NFSS has help up extraordinarily well over the years but there are some features that we've either wanted or have been added by third-party packages. A re-write (in effect) gives us a good place to start with incorporating additions. Possibilities:
> 1. Another text font axis for representing "case"; i.e., small caps
> 2. Unicode math and text font encodings; see xunicode.sty and unicode-math
> 3. relsize.sty and similar
> 4. ? -- suggestions welcome
> * Future: We like to experiment with a LaTeX3 format from time to time. Having an expl3 version of the font loading code is one of the larger pieces missing in what we are currently able to construct of a LaTeX3 kernel.
> I've been working on the translation (very much part time) for a little over a month, and I'm rapidly running out of spare cycles in my week. Instead of letting the code languish on my computer I've now put it in a *temporary* repository on Github: <http://github.com/wspr/xfss/>
> As you can see it's far from complete, and most of the code comments are still missing. When the noise and dust settles I'll bring it into the LaTeX3 SVN repository if it's deemed up-to-snuff.
> So that's about it, really. Nothing much to see here, move along :)
> Best wishes,
> -- Will
Impressive that you've got this far, but a quite look at the code does
flag up a potential danger from this approach. You're pretty much tied
to what seemed like a good idea at the time in terms of
_implementation_, not just in terms of interface. The later is pretty
good, I think we all agree, but I'm not sure I would choose anything
like the same implementation. Perhaps we first need a LaTeX3 translation
of the current code as you say, in order to see where to go.