Go to the first, previous, next, last section, table of contents.


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.

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:

ksh@eskimo.com

or, as a last resort, mail them to:

Algae Bugs
Attn: Scott Hunziker
Mail Stop 82-97
Boeing Defense & Space Group
P.O. Box 3999
Seattle, WA  98124-2499

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.

1
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.
16
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. The problem is understood, and will soon be fixed.
17
The return statement never prints its result.
21
The logical operations don't keep matrices sparse when they could. For example, a&a should be sparse if a is sparse; instead, it's converted to dense.
22
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.
23
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.


Go to the first, previous, next, last section, table of contents.