ThSystem:
CONFIGURATION
IMPORTS Atom, BasicTime, BluejayUtils, BTree, BTreeSimple, BTreeVM, Commander, CommandTool, Convert, FS, FSBackdoor, IO, List, LupineRuntime, NamesGV, NamesRPC, Process, PrincOpsUtils, ProcessProps, PupSocket, RedBlackTree, RefID, RefTab, RefText, Rope, RPC, Rope, RPCLupine, RPCLupineExtras, RPCInternal, RuntimeError, SafeStorage, UserProfile, VoiceUtils
EXPORTS NamesRPC, Thrush, ThNet, ThParty, ThPartyPrivate, ThSmartsRpcControl, ThVersions, TU, LarkPlay
CONTROL NamesGVAuthImpl, TriplesImpl, DESDummy, WhitePagesImpl, WPBTreeImpl, TUImpl, ThVersionsImpl, ThServer --, ThClient -- = {
ThServer:
CONFIGURATION
IMPORTS Atom, BasicTime, BluejayUtils, Commander, CommandTool, Convert, DESFace, IO, List, LupineRuntime, NamesGV, NamesRPC, LarkPlay, Process, PupSocket, RedBlackTree, RefID, Rope, RPC, RPCLupine, RPCLupineExtras, RuntimeError, SafeStorage, Thrush, ThNet, ThVersions, Triples, TU, VoiceUtils
EXPORTS ThSmartsPrivate, ThParty, ThPartyPrivate, ThSmartsRpcControl
It is OK for a package that knows it's local to bind directly to these interfaces.
CONTROL RemoteSmarts, ThPartyRpcServerImpl, ThPartyMonitorImpl, ThPartyOpsImpl, ThPartySupervisorImpl, ThPartyInitImpl, LarkSmartsRpcServerImpl, LarkRpcClientImpl, LarkRpcBinderImpl, LarkInImpl, LarkOutImpl, LarkSmartsMonitorImpl, LarkSmartsImpl, LarkSmartsSupImpl, LarkSmartsInitImpl, LarkTrunkSmartsImpl = {
RemoteSmarts:
CONFIGURATION
IMPORTS LupineRuntime, Rope, RPCLupine, RPCLupineExtras
EXPORTS ThSmartsRpcControl
CONTROL ThSmartsRpcClientImpl, ThSmartsRpcBinderImpl = {
ThSmartsRpcClientImpl;
ThSmartsRpcBinderImpl; };
RemoteSmarts;
ThPartyMonitorImpl;
ThPartyInitImpl;
ThPartyOpsImpl;
ThPartySupervisorImpl;
ThPartyRpcServerImpl;
LarkSmartsRpcServerImpl;
LarkRpcClientImpl;
LarkRpcBinderImpl;
LarkSmartsMonitorImpl;
LarkSmartsSupImpl;
LarkSmartsImpl;
LarkTrunkSmartsImpl;
LarkSmartsInitImpl;
LarkInImpl;
LarkOutImpl;
SynthesizerImpl;
};
WhitePagesImpl;
WPBTreeImpl;
ThVersionsImpl;
TUImpl;
NamesGVAuthImpl;
TriplesImpl;
DESDummy;
LarkPlayImpl;
}.