[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

9. Bugs

Your bug reports play an essential role in making Algae reliable. By reporting a bug, you may or may not get a timely solution to your problem. Either way, bug reports help us to make the next version of Algae better. In addition, your comments or criticisms on Algae or the Algae language are also welcomed.

The Algae interpreter is incomplete. There are several operations that it should be able to perform but that have not yet been implemented. These cases elicit a "detour" message from Algae. Since they're not bugs, you don't need to tell us about them. Still, complaining about them might get them fixed.

9.1 Reporting Bugs  
9.2 Reported Bugs  

9.1 Reporting Bugs

In order for a bug report to serve its purpose, you must include the information we need to fix it. As the GNU people say, "report all the facts". But never mind Joe Friday--the more information the better. It usually doesn't pay to explore the "envelope" of the bug; that is, changes to the input that affect it. Providing a simple example is the best way to get a bug fixed.

You should include the following information with your bug report:

Send bug reports to:


or, as a last resort, mail them to:

Algae Bugs
Attn: Scott Hunziker
The Boeing Company
P.O. Box 3707, MC 8K-26
Seattle, WA  98124-2207

9.2 Reported Bugs

Below is a list of bugs that are known to exist in the current version of Algae and are waiting to be fixed.

Recurse deep enough, and Algae dumps core. For example, the expression

function () { return self(); } ()

will not return gracefully. (I just tried it, and I had to reboot my machine!) It usually takes more than 500 levels of recursion to hit this bug, though, so you'll probably only encounter it with runaway functions.

We have problems when a parse error occurs in a recursive call to the parser. Local variables created in the recursive call are left in an invalid state. This happens, for example, if you call the source function from an interactive session and encounter a parse error in the process.

Every time Algae parses a file, it leaks the memory in which the name of that file is stored. The names are kept around because user functions refer to them. Instead, we should arrange for the names to be stored with each user function so that they get deleted when the function is deleted.

When Algae reads a binary file that contains a user function, it allocates memory for every string constant in that function. If you then delete that function, this memory is leaked.

We use the texi2html program to make Algae's HTML documentation from the texinfo source. Among its numerous deficiencies, it sometimes splits an anchor from the text with which it is supposed to be associated. For example (from algae-3.5.0), the anchor for the section named "Running Algae" is put at the bottom of the file `algae_6.html' instead of at the top of `algae_7.html' where it belongs. For this reason, the Algae info function may not take you to the right place in the document.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by K. Scott Hunziker on February, 11 2004 using texi2html