I like 'static' more than 'global' or 'const' for lifetime names, and I agree that const and static should be unified into a single name.
'static' scares me a bit because of C's use of it in several somewhat unrelated contexts, and so the name feels a bit polluted in my mind. But I still like it best. On Tue, Mar 12, 2013 at 5:13 PM, Benjamin Striegel <ben.strie...@gmail.com> wrote: > I'll speak up in favor of ditching both "const" and "static" for "global". > > global foo: int = 1; > global mut bar: int = 1; > &'global baz > > (Though not sure exactly what the 'static region is, does that last one make > sense?) > > > On Tue, Mar 12, 2013 at 3:44 PM, Graydon Hoare <gray...@mozilla.com> wrote: >> >> Hi, >> >> At today's meeting we had a a discussion about two issues that >> intersect, oddly, at a particular point of the syntax. The two issues are: >> >> - Removing the 'static lifetime-name -- currently used to denote >> the lifetime of consts -- since the only other use of the word >> (static fn ...) is going away when we finish with explicit-self; >> renaming it (probably) to 'const since that's the word used to >> introduce consts! >> >> - Adding mutable globals (unsafe-to-access, but needed in some >> corner cases for mutexes and such). This is an old bug >> (two years! https://github.com/mozilla/rust/issues/553 ) that >> we've long assumed we'd have to implement eventually. >> >> We agreed to do the former (rename 'static to 'const) and collapse all >> uses of the word "const" to mean this "read-only-memory" thing. But then >> when pushing around possible syntaxes for mutable globals, such as the >> following not-so-charming options: >> >> let mut x : T = v; // like in functions, but different since >> the RHS must be a const and can refer to >> values declared-after it. >> >> const mut x : T = v; // adding a modifier to 'const' but one that >> reads somewhat absurdly: "constant mutable"? >> >> unsafe mut x : T = v; // more random choices... >> >> We stumbled on the _opposite_ possibility for const-vs-static: maybe we >> should be retiring the "const" keyword and standardizing on "static", >> for both mutable and immutable. The following cases would then fall out: >> >> static x : T = v; // constant init, immutable, like const today >> >> static mut x : T = v; // constant init, mutable, unsafe to access >> >> With values in that scope having 'static lifetime, and the word "const" >> no longer appearing anywhere in the language. >> >> There are other options, probably, that we did not consider. Some people >> suggested putting "global" in there instead of "static". Some suggested >> going back to "var" rather than "let". >> >> This is an intentional (brief) request for a little syntax >> bikeshed-discussion to see if anything else occurs to anyone, or if >> anyone has strong reactions / preferences / thoughts to any of the above >> options. We recognize that this does not _exactly_ align with the >> meanings of the highly-overloaded words "const" or "static" in C/C++, >> but think that there's some keyword and concept overlap here that can >> probably be minimized. >> >> (Maybe reply for only a couple days and we'll summarize opinions and >> pick something thereafter. No need for it to drag on forever.) >> >> Thanks, >> >> -Graydon >> _______________________________________________ >> Rust-dev mailing list >> Rust-dev@mozilla.org >> https://mail.mozilla.org/listinfo/rust-dev > > > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev > _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev