On Friday, 27 February 2015 at 23:05:39 UTC, Zach the Mystic
wrote:
On Friday, 27 February 2015 at 22:10:11 UTC, Marc Schütz wrote:
I put my own version into the Wiki, building on yours:
http://wiki.dlang.org/User:Schuetzm/scope2
It's quite similar to what you propose (at least as far as I
understand it), and there are a few further user-facing
simplifications, and provisions for backward compatibility. I
intentionally kept it as concise as possible; there are
neither justifications for particular decisions, nor any
implementation details, nor examples. These can be added later.
I like this phrase: "Because all relevant information about
lifetimes is contained in the function signature..." This keeps
seeming more and more important to me. There's no other place
functions can "talk" to each other -- and they *really* need to
talk to each other for any of these advanced features to work
well. I'm pretty sure it's really the function signature which
needs designing -- what to add, what can be deduced (and
therefore not added), and how to express them all elegantly and
simply. And of course, my favorite Castle in the Sky: attribute
inference!
I won't really know how your proposal works until I see code
examples.
For me, it's important to keep the implementation details and
algorithms separate from the basic workings. Otherwise it's
hard for me to fully understand it in all aspects.
Okay, but hopefully some examples are forthcoming, cause they
help *me* think.
Yes, definitely! I already started with the inference algorithm,
see the other post. But I'll go to bed now, it's already past
midnight.