A Native-Code version of Hevea

Philip A. Viton

May 19, 2002

1  Introduction

This note announces the availability of an experimental Microsoft Windows native-code port of Hevea/Hacha/Esponja-1.06, one which does not require the Objective Caml bytecode virtual machine ocamlrun. I've wanted to try this for a long time, and when I finally got a-hold of the Microsoft Visual C++ package, I immediately went to work.

Warning: I have given this very limited testing --- actually, next to none --- so until people have more experience with it, this new port should be considered highly experimental. As noted below, I make it easy to run the new version side-by-side with the older (bytecode) version; and this is the way I think you should proceed. But if you're got a wild streak in you and want to throw caution to the winds, you can opt for the native-code version alone.

Why should you be interested in the native-code version? In a word --- speed. I tested the two versions on a fairly large (600K) .tex file, and this is what I found:
Bytecode Hevea: 28 seconds

Native-code Hevea: 6 seconds
Tested on a 500Mhz system running Windows NT4. Your mileage may differ; but it seems clear that there is a significant speed-up, enough to make Hevea usable for a real-time generator of HTML on a web site. On the other hand, the speed-up is presumably less visible on smaller source files, and also with faster computers --- these days 500Mhz is slow by a factor of 3 or 4 --- so you be the judge.

2  Obtaining Native-Code Hevea

I provide three ways you can get this (a copy of these notes in included in HTML format in the two new distributions):

3  Reporting Errors

I'm very interested to know if anyone has any problems with the native-code port, so please let me know if anything goes wrong. It would be most helpful if you would check that the bytecode version runs without error in cases where the native-code version fails; but if you've over-written the bytecode executables, send me the source file with a brief description of the problem.

4  Concluding Remarks


This document was translated from LATEX by HEVEA.