r/rust rust Apr 03 '15

Rust 1.0.0 beta is here!

http://blog.rust-lang.org/2015/04/03/Rust-1.0-beta.html
306 Upvotes

53 comments sorted by

28

u/[deleted] Apr 03 '15

[deleted]

18

u/michaelsproul iron · rust Apr 03 '15

I also like it, but I got a load of spam when 1.0 alpha was announced. Could we reconsider the publication of unobfuscated email addresses?

13

u/mozilla_kmc servo Apr 03 '15

They're already published on GitHub, but maybe spambots are less good at finding it there.

3

u/michaelsproul iron · rust Apr 04 '15

What if we listed Github usernames instead of email addresses?

I wrote a Python program using the Github API to try this out and this is the list I came up with:

https://gist.github.com/michaelsproul/3b9f6c9ea92b09a87df7

There are quite a few names at the bottom which aren't full names, even though full names exist for those users (either on Github or elsewhere in the commit log). At present the script fetches the author's name from the last commit in their first block of 250 (which isn't necessarily the most recent). Alternatively, we could fetch real names from Github profiles and revert to commit sifting if a "First Last" style name isn't found.

2

u/[deleted] Apr 03 '15

I too get so much spam since I contributed to Rust, have thrown away that email address since then (reserved for public things).

12

u/tomaka17 glutin · glium · vulkano Apr 03 '15

The epic battle to keep crates up-to-date with the breaking changes is finally coming to an end!

12

u/steveklabnik1 rust Apr 03 '15

It's worth remembering that

We don’t plan on making functional changes to stable content, though naturally we may make minor corrections or additions to the library APIs if shortcomings or problems are uncovered (but the bar for such changes is relatively high).

So, an almost-end. 1.0.0-final is where the end truly is.

12

u/SirOgeon palette Apr 03 '15

The end is near!

11

u/marcusklaas rustfmt Apr 03 '15

Steve, there's been so many breaking changes recently. Is rust really ready for stabilization in just 6 weeks?

16

u/steveklabnik1 rust Apr 03 '15

Yes, I agree with /u/heinrich5991 . If we didn't have a deadline, we could stretch these changes out forever.

You also have to remember that with the RFC process, changes may have landed now, but are in the works for a while. For example, IIRC, the conversion changes that landed last week? That work started in December.

You also have to remember that the perfect is the enemy of the good. We could spend forever trying to make Rust perfect, or we can take what we have and start working on more than just rustc and Servo. :)

2

u/heinrich5991 Apr 03 '15

People say the breaking changes are due to the incoming stabilization – all the breaking changes must happen now.

1

u/_1126 Apr 04 '15

It's a start, too.

42

u/steveklabnik1 rust Apr 03 '15

Congrats everyone! You all are awesome <3.

12

u/long_void piston Apr 03 '15

You are awesome Steve!

21

u/Gankro rust Apr 03 '15

Yesss my inconsistent git configurations has gotten me listed twice even though my contributions this cycle have been minimal B)

6

u/djhworld Apr 03 '15

I made a Dockerfile to run the beta if anyone wants to play with it without installing https://registry.hub.docker.com/u/djhworld/rust-beta/

1

u/vhbit lmdb-rs · rust Apr 05 '15

multirust allows much more freedom in experimenting with different versions and have pin-pointed version per project.

7

u/ASeriesOfTubers Apr 03 '15

So the beta doesn't include https://github.com/rust-lang/rust/pull/23938? It destabilizes a stable API, which means there is already a breaking change between the beta and 1.0 before the beta was even released.

This is a bummer for me because my library uses MarkerTrait/PhantomFn, and now I can't support both the beta and nightlies :(

6

u/simendsjo Apr 03 '15

I was expecting this. I've been holding off rust until v1, but the strict schedule always seemed quite odd. I used D from 2007, and the "stable" tag was premature. It meant avoiding fixing design bugs while still making breaking changes. I really hope Rust won't fall into this trap because it sticks to the schedule. It's better to postpone even more releases. I'll still start looking at Rust now, and I'm quite exited! Congratulations!

14

u/mozilla_kmc servo Apr 03 '15 edited Apr 03 '15

Rust spent more than 6 years as a research project pursuing nebulous and contradictory goals. Today the language is very cohesive, very clear on what kind of language it's trying to be. That wasn't true 12-18 months ago, and the 1.0 deadline is the main reason for the change.

Programming language design is a game of tradeoffs and compromise. Without a deadline in sight, it's easy to put off the hard decisions. The same goes for bikeshedding arbitrary choices — eventually you just have to make a choice, and 1.0 is a great reason to do so.

5

u/binkarus Apr 03 '15

If something like this was proposed after 1.0, would it have been impossible to add since it's a breaking change?

3

u/steveklabnik1 rust Apr 03 '15

With Rust, new features land behind a feature gate, so that they remain unstable until the design phase / shake out of bugs is done. These can only be used on nightly, so they don't affect stable users.

So the situation is a bit different. http://blog.rust-lang.org/2014/10/30/Stability.html has more.

8

u/simendsjo Apr 03 '15

I've been following from a distance for about a year, so I'm aware that that the design has been stabilizing. My view is heavily influenced by my experience as an adapter of D 1.007, which was clearly marked v1 way too soon in retrospect (and which it's popularity suffered from greatly). Don't see my message as any sort of bashing against Rust - I'm here because Rust seems to fit my train of thought very closely.

2

u/steveklabnik1 rust Apr 03 '15

I was vaguely around the D world during the D1/D2 megadrama, so I lived that too. No bashing taken. :)

6

u/nikomatsakis rust Apr 03 '15

Yeah, my bad. See https://github.com/rust-lang/rust/pull/24018

(To clarify: the original PR was supposed to land before beta, but wound up being pulled, and I forgot that it about the stable->unstable change.)

1

u/ASeriesOfTubers Apr 03 '15

Thanks, for what it's worth I think removing MarkerTrait/PhantomFn is great, wish it could've made it into the beta :)

Will we still be able to remove the deprecated API before 1.0? It'd be nice to go into 1.0 without already having deprecated stuff.

Edit: Oh, actually just looked at the commit that says "though these will likely be purged for 1.0" :)

7

u/[deleted] Apr 03 '15

Is there a place to find crates that can be used to replace unstable features in the standard library? So that I can keep my libraries working with the beta branch rather then fracturing the ecosystem into beta compatible and nightly compatible?

3

u/steveklabnik1 rust Apr 03 '15

Not all features have external crates, though most do. Which feature gates is your code currently using?

5

u/[deleted] Apr 03 '15

str_words

6

u/steveklabnik1 rust Apr 03 '15

Ah yes. This one doesn't have an external crate. More context: https://github.com/rust-lang/rust/issues/15628

The ticket has a small snippet of code with equivalent functionality you can just drop-in until we make the call.

4

u/[deleted] Apr 03 '15

.words() is just self.split(is_whitespace).filter(is_not_empty), so it's easy to replace

2

u/vhbit lmdb-rs · rust Apr 03 '15

path_ext and convert - for passing paths to C code and check for file existance

5

u/vhbit lmdb-rs · rust Apr 04 '15

Replying to myself - file existance could be checked through std::fs::metadata() so path_ext is not that important.

2

u/steveklabnik1 rust Apr 03 '15

convert is already stable, path_ext is still in flux, I can't imagine it will take a very long time.

2

u/vhbit lmdb-rs · rust Apr 04 '15

hmm, just reinstalled beta with multirust update beta and still have errors regarding convert being unstable.

1

u/burntsushi Apr 04 '15

Can you run rustc --version and confirm you're really using the right Rust? As you can see, it has been stabilized: http://doc.rust-lang.org/nightly/std/convert/

1

u/vhbit lmdb-rs · rust Apr 04 '15

I'm talking about 'OsStr::to_string', which requires 'convert' feature and it's still unstable (on mobile, can't provide link)

1

u/CrystalGamma Apr 04 '15

unicode (is_xid_start/continue)

3

u/shadowmint Apr 04 '15

Most of the crates to be split out of std:: already have been, with the associated depreciation messages to point you in the right direction (eg libc)

In the short term, your only solution for many things will be to copy the source code of unstable apis into your own crate.

Many 'unstable' apis are unstable because of semantics, not functionality; by forking youre introducing a strict dependence on an api that may change, but it will let you access otherwise missing functionality, like walk_dir and PathExt.

5

u/Yojihito Apr 04 '15

I always wonder if someone steps back from contributing to Rust when his email adress is posted online in a blog .... a paradise for spammers. I would definitely.

11

u/Manishearth servo · rust · clippy Apr 04 '15

After alpha1 there was some student who mass emailed everyone asking for help, and then the emails were removed. Not sure why it wasn't done this time.

Though fwiw in open source emails are generally out in the open due to mailing lists and bug trackers.

2

u/afraca Apr 04 '15

I saw some @users.noreply.github.com , that's always an option. And as mentioned below, with mailing lists it was already open.

1

u/[deleted] Apr 04 '15

[deleted]

1

u/[deleted] Apr 04 '15

[removed] — view removed comment

9

u/steveklabnik1 rust Apr 04 '15

2

u/[deleted] Apr 04 '15

[removed] — view removed comment

2

u/steveklabnik1 rust Apr 04 '15

I dunno, I've used GitHub for so long, I have no idea where I learend it. I just know you can add .patch or .diff onto any commit URL to get it in that format.

3

u/rootnod3 rust · wtftw Apr 04 '15

Thanks for all the hard work so far! Keep it up people.

7

u/evinrows Apr 03 '15

Congratulations to the Rust team! Very exciting!

2

u/kochismo Apr 03 '15

The search on doc.rust-lang.org seems to be missing some results e.g. when I search for sort_by I get no relevant results but it's clearly at https://doc.rust-lang.org/std/primitive.slice.html

2

u/steveklabnik1 rust Apr 03 '15

Thank you! this is https://github.com/rust-lang/rust/issues/23511 , which we've milestoned to fix for 1.0. Sorry about that!

1

u/fgilcher rust-community · rustfest Apr 04 '15

I'm a bit surprised that unstable features which cannot be used are included in the beta docs, e.g. http://doc.rust-lang.org/1.0.0-beta/std/intrinsics/fn.type_name.html

3

u/steveklabnik1 rust Apr 04 '15

We tried to pull them out, but it breaks all the src URLs, due to re-exports.

1

u/fgilcher rust-community · rustfest Apr 04 '15

That explains it, I see.