Barry SCHWARTZ (Barijo ŜVARC) (chemoelectric) wrote,

Ugh. Rewriting.

You can do neat things with OpenType fonts that have many ligatures and contextual alternates and software that can take advantage of that:

That’s with Nick Shinn’s Handsome Pro. It’s even more impressive with Adobe’s Caflisch Script Pro (although, because of its varying baseline, Handsome looks much more natural than Caflisch). But it’s also slow. So I thought I could get some speed up by using the native code compiler instead of the translator-interpreter, but the Unicon compiler is very new, very experimental, and the code it produces barfs almost immediately upon start-up.

The plain Icon compiler, on the other hand, is old, and it is stable (at least in the sense of ‘unchanging’). So I’m considering rewriting in plain Icon. Ugh. The object-orientation was really useful, but it would be nice to be able to compile to native code. The percentage speed-up isn’t necessarily that great for an Icon program; plus since what seems to be going wrong in the Unicon compiler is type inferencing, maybe my straight Icon would also be prone to this. But I don’t know without trying, and that gets harder to do the longer I wait.

A task like this one is likely to give me real hand troubles, although at least it doesn’t mean really rewriting everything; Unicon code is not nearly as different from straight Icon as C++ is from C, I would say, and so it isn’t a lot of new typing, but for me it is a lot at once.

Incidentally the Icon compiler is unusual in that it cannot handle separate compilation, which is a bummer mainly because then re-building after a change can be slow. You have to give it all the source at once, including sources to library code written in Icon. The compiler does a global type inference somehow, which is nontrivial, because Icon variables are of type ‘anything’.

I have sped some things up with changes to the code, but have doubts about my ability to make things go at a truly decent speed, and I haven’t yet added hyphenation to the problem.

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded