[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
Re: rewriting proxies' sending half
- To: <hibbert@evilotto>, <markm@evilotto>, <michael@evilotto>
- Subject: Re: rewriting proxies' sending half
- From: Michael McClary <xanadu!michael>
- Date: Mon, 13 Aug 90 18:18:01 PDT
- Cc: <xtech@evilotto>
> Assuming it is, here's my modified approach: I use MarkM's idea about
> putting the handleSend(...) methods in the abstract message description
> objects, then I can get rid of all the problems with using VarArgs, and
> use the other speedup ideas that Michael suggested without worrying about
> code space very much.
My ideas were not for speeding up the code (though that may be a side
effect). They were for shrinking it.
>  it looks there are only 20 abstract signatures that ever
> get used out of about 700 methods. That means that the space that
> the handleSend messages use doesn't matter much, and I can worry
> about speed there instead.
> So, in addition to the list Michael gave, I get to add 20 versions
> of handleSend() each with a specific (not VarArgs) signature.
> Each of those uses the calls he listed for CommXcvr, unless there
> are places I decide to go for clarity instead of conciseness.
Though the hybrid approach can produce the smallest code in the proxy
objects, it requires manual intervention if a new signature occurs.
The approach I outlined is nearly as small, and requires no intervention.
If it were just us, I'd probably say "go with the small one". But this
is a tool that is intended to be used by our developers. We should
avoid any solution that requires them to learn yet another piece of the
guts of our code as a prerequsite to writing their own, especially one
that would give them a mysterious link failure the first time they used
a signature that we didn't.
So unless we can come up with a way to generate all the signatures
automatically, preferably with the existing tools or some upgrade of
them, I'd prefer to go with the sometimes-slightly-larger, but completely
automatic, solution I outlined - then go to the other solution if the
space saving is not sufficient.