On Tue, Dec 23, 2014 at 2:19 PM, Ehsan Akhgari <ehsan.akhg...@gmail.com> wrote:
> On 2014-12-23 5:13 PM, Eric Rescorla wrote: > >> On Tue, Dec 23, 2014 at 2:07 PM, L. David Baron <dba...@dbaron.org >> <mailto:dba...@dbaron.org>> wrote: >> >> On Tuesday 2014-12-23 14:03 -0800, Eric Rescorla wrote: >> > This may be a much longer argument, but I'm not convinced that >> > sacrificing what would otherwise be good programming practice >> > (never unboxing your pointers) at the altar of performance is a good >> > idea. >> >> Why do you think never unboxing pointers is a good programming >> practice? >> >> >> Because it allows/encourages mixed ownership regimes between reference >> counting (or single ownership) and explicit management. >> >> Note that I'm not saying that there's never a time for unboxing, but it >> should be done carefully not routinely. >> > > I think there is a different way of looking at things. When you pass a > conceptual pointer value to a function, sometimes you want an ownership > change to happen, and at other times you just want the callee to use the > pointer (perhaps to call functions on it, for example) without changing the > ownership. I think unboxing the pointer for the latter case is perfectly > fine, as long as enforce that the ownership on the caller side remains > valid for the duration of the call, and that the callee doesn't do > something that changes the ownership behind the scenes (the latter is more > challenging. Well, I certainly agree it's more challenging, since nothing stops the callee from simple assigning the raw pointer to some location that outlives the function call. The idea behind requiring that pointers remain boxed is to prevent that and/or to shine a light on places where it is possible because someone unboxed. -Ekr _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform