[Ns-developers] Learning Bridge has been merged
Gustavo Carneiro
gjcarneiro at gmail.com
Wed Jul 23 09:44:21 PDT 2008
2008/7/23 Mathieu Lacage <mathieu.lacage at sophia.inria.fr>:
>
> On Wed, 2008-07-23 at 16:57 +0100, Gustavo Carneiro wrote:
>
>
> > I would be happy to see users volunteer to make "stable"
> > releases of
> > ns-3.1 as ns-3.1.x if they think it is a good use of their
> > resources.
> > i.e., if you are willing to do it, I am sure we can help you
> > to do so.
> >
> > If this was a distributed work among all developers, maybe it'd work
> > (bug fixes are committed only into ns-3-stable, and pulled/merged
> > later into ns-3-dev).
> >
> > But a far easier approach would be to keep a single branch with at
> > least some degree of API stability. The effort of maintaining API
> > stability is very low IMHO. Now, you do not want to provide API
> > stability. Fine, maybe you have better things to do. But on top of
> > that you are stopping me from providing backward compatibility for the
> > code that I am contributing.
>
> What do you mean by "you are stopping me from providing backward
> compatibility" ? If you wish to maintain an ns-3.1.x branch, I see no
> reason why I would stop you from doing it. I would, in fact, find this
> pretty seriously cool.
Hey, don't trick me into maintaining a ns-3.1.x branch, alone! :P
I was talking about the route of _not_ branching and instead try to keep
some API stability in the single branch. What I meant was that everything I
try to maintain API compatibility ends up hitting some maintenance rule:
- I had initially added Node::AddPromiscProtocolHandler, you say it is too
ugly;
- Now I make the new NetDevice methods non-virtual, you say makes the
class fragile.
So basically my hands are tied by all those rules.
>
>
> > > Case in point. A fellow Phd student was using ns-3.0.11 for
> > his
> > > research. He wants to try TCP instead of UDP, but there
> > were some
> > > problems with TCP in ns-3.0.11. He has to switch to ns-3.1,
> > now, but
> > > I am afraid the task is much more complex than his C++
> > skills will
> > > allow, and so I have the task waiting for me, to help him
> > out. I'll
> > > probably spend at least a couple of days adapting to the new
> > API. And
> > > it is really _tedious_ work, the suicide thought inducing
> > kind :|
> >
> >
> > If users used pre-3.1 releases and complain about porting to
> > 3.1, there
> > is nothing we can do about this.
> >
> > Yes, I know. But if this is an example of things to come, we will
> > have problems. In my case, if API is too unstable, I will stop
> > tracking ns-3-dev after ns-3.2 (I want ns-3.2 for the python
> > bindings). And then I would be unable to contribute any code to
> > ns-3-dev.
>
> I think that, once the python bindings in ns-3-dev build for all
> developers (it seems that there are these tricky python2.3 issues you
> tracked down with craig),
These python issues should be fixed now, as far as I could test.
> you will have two options:
> - ask those who break the python bindings to fix them either by
> running the automatic generator or doing hand edits
> - keep maintaining the python bindings yourself when APIs change
>
> I would be fine with either solution and I think that you should pick
> the one which works best for you. i.e., if you want us to fix the python
> bindings when we break them, I will support that strongly.
Sure, but I am concerned about C++ models, not Python.
Although, I should point out that API changes can sometimes be harder on
Python scripts than on C++ code, because there is no compile-time checking;
things just fail to run, and only if the relevant code is covered in
runtime.
--
Gustavo J. A. M. Carneiro
INESC Porto, Telecommunications and Multimedia Unit
"The universe is always one step beyond logic." -- Frank Herbert
More information about the Ns-developers
mailing list