How can GeodeUseLibrary be published...

Marcus Groeber (100712.270@CompuServe.COM)
11 Nov 96 11:26:36 EST

> I understand that, but there's one question that raises: Why is
> GeodeUseLibrary being published? That's a system routine that everything
> depends on. Wouldn't the system not work if it was absent or buggy?

There is a subtle difference between GeodeUseLibrary and GEODEUSELIBRARY - the
upper case version is a routine which expect parameters to be passed according
to C conventions (i.e. by stack), while the mixed case name refers to an
assembly language API which passes arguments in registers.

Actually, most of the routines exported by Geos library have these two aspects.
Usually, the one which is used by the system internally is the assembly language
version, while the C "routine" consists of a mapper which loads the registers
from the stack arguments in the proper way, the calls the assembly language
routine and possibly handles the return value.

These wrappers are actually hand-written code, and there are hundreds of them,
with the result that a number of them is buggy. The system's performance is not
affected by this, because it is not using these C calls anyway - but the problem
will affect anyone writing GOC applications.

This is something that a Geos programmer should always keep in mind: areas of
the system which are used internally by Geoworks are generally rather
well-debugged, while stuff which is "only" a service to application developers
should be treated with a certain amount of suspicion...

The same applies to object interactions: if a set of objects can be seen working
together anywhere on a Geos platform, their interaction can be expected to be
well documented, and it usually works just as advertised - but don't you dare to
use those objects on their own... :-)

ciao marcus