On Fri, 2008-12-19 at 12:10 +0100, Jürg Billeter wrote:
> 
>       * `(owned)' cast replaces `#' reference transfer expression
> 
> Even less used, equally unintuitive. Example of new syntax:
> 
> string foo = (owned) bar;

I don't have a strong opinion on this since I don't really need it, but
using a cast expression feels a bit wrong. Not sure if we want to keep
the option open of having operator overloading, but what about something
like:

string foo <= bar;
or
string foo << bar;

> 
>       * `unowned' type modifier complements `weak' type modifier
> 
> `weak' only make sense for reference fields, list elements, and local
> variables to break reference cycles. Vala will use
> `g_object_add_weak_pointer' in these places in future versions.

I definitely agree we should avoid dangling pointers as much as
possible. However, I fear a bit that many people will turn to using
pointers when this is also applied to local variables.

> In other places where `weak' is currently used such as method return
> values or fields of non reference counted types, it has the meaning of
> "no ownership transfer". This is mostly used in bindings but can also be
> used in Vala code to fine-tune the ABI. In my opinion, `unowned' as
> counterpart to `owned' fits better in those places.

It probably depends how you look at it. Personally, I tend to think in
terms of shared and weak references. Owned and unowned seem to suggest
an object can only be owned in one place.

Hans

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

Reply via email to