
Announcing Rust 1.33.0 - steveklabnik
https://blog.rust-lang.org/2019/02/28/Rust-1.33.0.html
======
Arnavion
This release also enables Windows binaries to run in Windows nanoserver
containers. Previous releases would produce Windows binaries that depended on
shell32.dll for parsing the commandline into argv, but this DLL is not present
in nanoserver. With this release the standard library implements the logic of
parsing argv itself.

[https://github.com/rust-lang/rust/pull/56568](https://github.com/rust-
lang/rust/pull/56568)

~~~
bpye
This is news to me! This is pretty cool.

Rust seems like a great language if you want the run anywhere capability of C,
with considerably more safety.

------
kibwen
Expanding the capabilities of const fn is a tremendous achievement, years in
the making. Congratulations to all involved (though of course there's much
work yet to be done)! I especially appreciate that the syntax for const fn is
"just" Rust, without being any sort of DSL or metalanguage, making it quite
approachable and usable. The stabilization of the Pin API is also quite the
achievement; the GitHub issue discussing it is one of the densest and most
extensive threads I've seen: [https://github.com/rust-
lang/rust/issues/49150](https://github.com/rust-lang/rust/issues/49150)

~~~
tiniuclx
I have been paying attention to Rust for the past year or so and I think it'll
be the next language I will end up learning. I do have a question: what is
const fn supposed to be used for? Is it for denoting pure functions? That
would be really nice, considering that not many non-functional languages
explicitly recognise pure functions.

~~~
steveklabnik
const fn is used for compile-time programming. "pure" is a bit over-loaded of
a term, but you can sort of think of it that way, sure.

You can of course also run these functions at runtime; they're a more
restricted kind of function. You cannot even currently use if inside of them,
for example. We're working on expanding it out, but we're going slow because
it's important for soundness reasons.

~~~
lultimouomo
Should we think of them like the equivalent of constexpr functions in C++?

~~~
tux3
Yes, but hopefully without the amusing issue of non-constant constexpr
functions in C++ :)

[http://b.atch.se/posts/non-constant-constant-
expressions/](http://b.atch.se/posts/non-constant-constant-expressions/)

~~~
PowerGuido87
So they're more like C++20's consteval?

[http://wg21.link/p1073r3](http://wg21.link/p1073r3)

~~~
tux3
As I understand it, not really no.

The conceptual difference between constexpr and consteval is that consteval is
guaranteed to be evaluated at compile-time, so unlike constexpr code,
consteval code will never actually end up as a function in your binary.

Rust's const fns on the other hand can be called at runtime, so in that
respect they'd be closer to constexpr.

------
est31
Finally, the Duration::as_... functions are stable. Allows one to do duration
calculations much more nicely now that it's one variable.

~~~
beatgammit
I was actually on nightly for a bit because of this, then I realized I only
needed them in a few places so I did it myself so I could go back to stable.
I'm glad this is in the release. :)

------
zach43
It is nice to see the const fn improvements!

maybe this is normal for the minor version Rust announcements, but is the page
missing a link to the list of contributors?

~~~
mark-simulacrum
We're going to publish that soon -- it needs to be generated after the release
is tagged and it took longer today. We'll edit the blog post when it's ready
to go.

~~~
steveklabnik
To be even more clear, I had to give my old computer back to Mozilla, and had
not yet set up all of the necessary stuff on my new computer yet. For
Reasons(tm), the contributor list is a full webapp backed by postgres, and so
I have to get all that set up locally. Oops!

I really need to re-write it to make it more simple this time.

UPDATE: list is live at [https://thanks.rust-
lang.org/rust/1.33.0](https://thanks.rust-lang.org/rust/1.33.0), blog post has
been amended to include the link. Should show up in a few minutes. Thanks for
your patience, everyone.

------
sridca
Does anyone use Rust for hobbyist game development? What is your experience?

~~~
drclau
You may find this site useful:
[http://arewegameyet.com](http://arewegameyet.com)

~~~
Errsher
Is there a list of these websites anywhere?

~~~
the8472
Check [http://arewemetayet.com/](http://arewemetayet.com/)

------
rienbdj
Where does async stand at this point?

~~~
jcranmer
To summarize:

* The Pin trait is stable.

* std::task/std::future, i.e., the ability to use futures is still unstable.

* The async/await syntax is still unstable. And apparently being bikeshedded like mad, from what I've heard.

~~~
Arnavion
Note that it _is_ usable in nightly. So if you just want to play with it,
don't let the fact that it's unstable stop you.

Occasionally a nightly will break your code (the most recent case being when
LocalWaker was renamed), and you might have to wait a few more days after that
for the futures-preview crate to catch up.

~~~
beatgammit
It's more common on less popular OSes, like FreeBSD, so I ended up sticking to
stable for those platforms (e.g. production).

------
ilovecaching
The const improvements are indeed awesome.

I wonder if there were any big improvements to compile times? Is that in the
road map for this year?

~~~
steveklabnik
We have not published a roadmap yet (I'm getting there), but compile times are
always of a lot of concern to the compiler team and they're going to be
working on it for sure. It's the #1 requested feature.

~~~
bmer
I personally don't understand why compile times are such a concern, as the
larger libraries I have worked with take less than a minute to compile. Are
there programs that take hours to compile?

~~~
beatgammit
The edit + reload cycle is the biggest concern, though it's mostly moot these
days with incremental compilation. However, I still dislike updating
dependencies because it'll take several minutes to rebuild everything.

Also, building third-party tools is a pain as well (compile diesel or ripgrep
sometime), which is the most annoying part for me.

Also, it's a bit annoying for CI since I like to make sure everything can
build from scratch, and it can be quite the wait to see if your build
succeeded.

~~~
burntsushi
Could you say more about the annoyances you experienced while compiling
ripgrep? Is it just the time it takes to build it or is there something else?

------
mchan
Does anyone know of any good resources for learning Rust from a beginner's
perspective? For someone with very little or no C/C++ experience?

~~~
luladjiev
I think The Rust Book might be good for you: [https://doc.rust-
lang.org/book/](https://doc.rust-lang.org/book/)

Also there are more resources here: [https://doc.rust-
lang.org/](https://doc.rust-lang.org/)

