[Ksummit-discuss] [MAINTAINER TOPIC] ABI feature gates?
Sergey Senozhatsky
sergey.senozhatsky.work at gmail.com
Fri Aug 4 05:08:36 UTC 2017
On (08/03/17 18:30), Greg KH wrote:
[..]
> > There's a few problems here. One is that the people who would really
> > review the ABI might not even notice until step 5 or 6 or so. Another
> > is that it takes some time for userspace to get experience with a new
> > ABI.
> >
> > I'm wondering if there are other models that could work. I think it
> > would be nice for us to be able to land a kernel in Linus tree and
> > still wait a while before stabilizing it. Rust, for example, has a
> > strict policy for this that seems to work quite well.
>
> What does Rust do here?
I think Andy meant how Rust tags all of its features:
...
#[stable(feature = "rust1", since = "1.0.0")]
fn finish(&self) -> u64;
/// Writes some data into this `Hasher`.
///
/// # Examples
///
/// ```
/// use std::collections::hash_map::DefaultHasher;
/// use std::hash::Hasher;
///
/// let mut hasher = DefaultHasher::new();
/// let data = [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef];
///
/// hasher.write(&data);
///
/// println!("Hash is {:x}!", hasher.finish());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
fn write(&mut self, bytes: &[u8]);
/// Writes a single `u8` into this hasher.
#[inline]
#[stable(feature = "hasher_write", since = "1.3.0")]
fn write_u8(&mut self, i: u8) {
self.write(&[i])
}
/// Writes a single `u16` into this hasher.
#[inline]
#[stable(feature = "hasher_write", since = "1.3.0")]
fn write_u16(&mut self, i: u16) {
self.write(&unsafe { mem::transmute::<_, [u8; 2]>(i) })
}
#[unstable(feature = "sip_hash_13", issue = "34767")]
#[allow(deprecated)]
pub use self::sip::{SipHasher13, SipHasher24};
...
-ss
More information about the Ksummit-discuss
mailing list