| <!--#set var="title" value="Status As Of June 30, 2006" --> |
| <!--#include virtual="/incl/header.incl" --> |
| <h1>Status As Of June 30, 2006</h1> |
| <p>HLVM has made significant progress in the last month. Here is the |
| status of HLVM as of Subversion revision #358.</p> |
| <h2>General Update</h2> |
| <ul> |
| <li>The first release (0.1) was made on June 13th, 2006. This release |
| provided the "Hello World" functionality. For details, please see the |
| <a href="/releases/0.1/docs/ReleaseNotes.html">Release Notes</a>.</li> |
| <li>Since the release we've been working on making HLVM "Turing Complete" |
| (using the usual loose definition).</li> |
| <li>We are now about half way through the 0.2 functionality set.</li> |
| </ul> |
| <h2>Functionality Changes</h2> |
| <ul> |
| <li>There are now 138 node types in the AST. Most of these are the new |
| arithmetic and Boolean operators.</li> |
| <li>A full set of arithmetic operators for both integer and floating point |
| arithmetic was implemented.</li> |
| <li>Constant values for simple types are implemented, but not yet for |
| container types.</li> |
| <li>A full set of Boolean operators for comparisons and other logic was |
| implemented.</li> |
| <li>There are now four types of loop operators, a select (if) operator, |
| automatic variables and function call.</li> |
| <li>Nested blocks and loops are correctly handled including the use of the |
| <tt>break</tt> and <tt>continue</tt> operators.</li> |
| <li>The "void" type was removed in favor of just using a null type pointer as |
| necessary. This gets around issues with "type has no size" problems. Without |
| void, all types have a size.</li> |
| <li>The HLVM run-time is now only dependent on APR. Previously it depended on |
| LLVM as well but this turned out to be problematic for linking.</li> |
| <li>A new <tt>hlvm-config</tt> program was written as the beginnings for a |
| standard <tt>*-config</tt> program. Currently it can dump out the Node IDs |
| (useful for debugging) and a few of the configured variables.</li> |
| <li>The validation pass is now much more discerning with significant |
| improvements in the checking it does.</li> |
| </ul> |
| <h2>Test Case Changes</h2> |
| <ul> |
| <li>There is a new test suite named "invalid" which tests to make sure that |
| HLVM tools will generate appropriate error messages on invalid input and not |
| let invalid trees be used. There are 21 test cases in this new suite.</li> |
| <li>The number of xml2xml test cases increased to 29 in order to test the |
| construction of the new AST nodes for arithmetic and looping.</li> |
| <li>The number of "return0" test cases increased to 16 to test code generation |
| for more situations.</li> |
| <li>There is now a new "suites" option available to scons and "SUITES" for the |
| Makefile. This controls which test suites you want to run. For example, the |
| command <tt>make check SUITES=return0</tt> will run just the <tt>return0</tt> |
| test suite. Similarly for the scons invocation except with "suites".</li> |
| </ul> |
| <h2>Documentation Changes</h2> |
| <ul> |
| <li>Saem is working on an XSLT program for translating Relax/NG grammars |
| with annotations into XHTML. This will be how we document that AST in the |
| future.</li> |
| <li>Much of the documentation that was on the public web site has now been |
| incorporated into the <tt>docs</tt> directory of the HLVM source repository. |
| This makes it auto-update, keeps it included in releases, and removes the need |
| to use frames in the main web site.</li> |
| <li>The build system was significantly enhanced and documented. The |
| <a href="../../DevelopersGuide.html">Developers Guide</a> now contains a |
| complete list of commands used to build a "sane" development environment |
| including all the dependent software packages.</li> |
| <li>Doxygen generation was implemented using SCons.</li> |
| <li>A new FAQ was started to describe the differences between HLVM and other |
| virtual machines. It sill has some significant holes in it. Suggests would be |
| welcome.</li> |
| </ul> |
| <h2>Platform Support Changes</h2> |
| <ul> |
| <li>Several new users got HLVM building on Mac OS/X.</li> |
| <li>Reid got HLVM to build on Fedora Core 5.</li> |
| </ul> |
| <h2>Other Changes and News</h2> |
| <ul> |
| <li>David started working on a Lisp -> AST program to explore ideas about |
| how to create the front end lexical and grammatical analysis portions of |
| HLVM.</li> |
| <li>The source directory structure was flattened out so that there is only |
| one level of directories under the <tt>hlvm</tt> source directory.</li> |
| <li>HLVM is now built with the GCC -pedantic flag ensuring the code can be |
| compiled on many compilers.</li> |
| <li>The build system now places all object files in the build directory. This |
| keeps the source directory nice and clean and makes it possible to get rid of |
| all generated output by removing the build directory.</li> |
| </ul> |
| <p><a href="/docs/status/index.html">Back To Status Index</a></p> |
| <!--#include virtual="/incl/footer.incl" --> |