This article is from the FAQ, by with numerous contributions by others.
The following limitations are currently specific to the SGI implementation:
1. Lazy Fetch in persistence is not implemented. This means that the
following demos fail:
2. Check for suspend involving callbacks is not done. If you do a suspend
in a callback situation the program is likely to crash.
3. It is uncertain if valhalla (v2.2) will work for executables that
contain shared object files.
4. Integer division by zero will yield unpredictable results (should be
caught as an exception as on other platforms). [corrected in r4.1]
5. The compiler may sometimes crash during code generation. Normally you
can just restart the compilation in this case. [corrected in r4.1]
6. There is sometimes a problem with real expressions involving external
calls. This is e.g. the case in the demo
which currently does not work on sgi. [corrected in r4.1]
7. The following runtime errors may not always result in correct dumps:
Repetition subrange out of range
Text parameter to C routine too big (max. 1000 bytes)
8. Do not specify an output file in the sgi-directory to the compiler.
I.e. do not do this:
beta -o sgi/foo foo.bet
Instead you should do this:
beta -o foo foo.bet
mv foo sgi/
The first method may fail when linking shared. The problem is, that the
shared object files are renamed to the file sgi in the sgi directory,
and thus the program will fail to execute. [corrected in r4.1]
9. Do not use the current notation in fragment paths. E.g. use
~beta/basiclib/v1.5/betaenv instead of ~beta/basiclib/current/betaenv.
You may get linker errors, if you use the current notation.