Subject: [netmod] Augmentable groupings and module inclusion

From: "Peter Loborg" <[email-masked]>
Date: Wed, 20 Aug 2008 10:31:38 +0200

Hi,

Reading the mail threads about Augmentable groupings it seems to me that
there should be some properties of the specification formalism that must
not get lost, no matter how nice a construct might look at first glance.

I would advocate that one such important property is the possibility to
have an agent and sub agents where a sub agent implements one module
which is imported and used in your main module (and thus called by your
main agent). Important part here is that you should not need to
re-compile the sub agent regardless of what you do in your own.

In order for this to work there will need to be

- a well defined interface between agents and sub agents (future work I
presume?)
- a language constructs that does not prohibit this usage of pre
compiled sub agents e.g. in the form of code libraries from other
vendors.

Therefore I think that...

1) augmentation of groupings (if allowed) will/should only be applicable
to top level groupings imported from another module (which is what I
interpret from the draft - only top level groupings can be reused in
another module, augmentation can only be done on stuff imported from
another module - or?)

2)  ...that I no longer can see the usefulness of this construct? What
can we do in module A by augmenting an imported grouping B:g1 that we
can't achieve by creating a new grouping that uses B:g1 and adds on what
is needed? If we want this new grouping visible to others it must be
defined on top level of our module, otherwise not.

The possible usage I can see is that if we first write our own module A
and inside A we uses B:g1 on several places, and then in release 2 wants
to add stuff to B.g1 we would need to define our own grouping A:g1 and
replace all occurrences in A of B:g1 with A:g1 (or replace them
selectively). And we could perhaps save some typing in this process.

Finally - if we do allow augmentation of groupings and augment B:g1 in
module A, that augmentation can not be allowed to influence usage of
B.g1 in another module C that directly imports and uses module B. Which
is to say that augment statements per se are not part of the
statements/constructs that can be imported to another module. But again,
the net effect of an augmentation can be seen by others, if we publish a
node from A that builds on it. But then it's a construct from A and does
not break the usage-of-precompiled-subagent property (in lack of a
better name).

BR,
Peter Loborg
 
_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod