On Sat, 2008-12-20 at 13:04 +0100, Jürg Billeter wrote:
> On Sat, 2008-12-20 at 12:19 +0100, Xavier Bestel wrote:
> > Le vendredi 19 décembre 2008 à 12:10 +0100, Jürg Billeter a écrit :
> > > I just committed some ownership syntax changes to trunk. The old syntax
> > > will continue to be supported but is planned to be deprecated after the
> > > release of Vala 0.5.4.
> > > 
> > > 
> > >       * `owned' type modifier replaces `#' type modifier
> > > 
> > > This is not often used, but `#' was very unintuitive as a type modifier,
> > > and I therefore decided to replace it by the hopefully better
> > > understandable `owned' modifier. Example of new syntax:
> > > 
> > > public void foo (owned string bar) {
> > >     [...]
> > > }
> > 
> > I like the idea, but the word "owned" doesn't really tells by who it's
> > owned (caller or callee). How about something like "callers" or
> > "transfer" ?
> 
> `owned' applied to a parameter means that the parameter owns the object,
> that is, the ownership of the object is transferred in the same
> direction as the parameter value: to the callee for input paramters, to
> the caller for output parameters, and input to the callee and output to
> the caller for `ref' parameters.
`owned' is still not much better than # because the world owned doesn't
describe the flow of the ownership; and where people can easily get
confused is the direction of the flow.

I read into glib again and perhaps a steal/take pair can work together.

void foo(take string bar); foo will take the ownership of bar from the
caller context.

foo(steal "bar"); the ownership of "bar" is stolen from the caller
context.

(notice the steal now is written in the caller code.)


> 
> The issue with the caller/callee owned terminology is that this does not
> apply very well to `ref' parameters and fields, which means that we
> would need yet another modifier in those places.
> 
> Jürg
> 
> _______________________________________________
> Vala-list mailing list
> Vala-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/vala-list

_______________________________________________
Vala-list mailing list
Vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to