1. 23

  2. 8

    very interesting! It does make me a little sad that both the underhanded C contest and the IOCCC have last been held in 2015.

    1. 6

      Oh yes, both of the contests are a great combination of pushing your programming language and fun at the same time.

      I’d love to run an obfuscated Rust contest at some point, but currently, we don’t have the manpower. I love these things.

    2. 2

      Can it even be called a proper contest when there were only two participants and four submissions in total?

      1. 22

        Yes, it can. It was open and advertised for multiple months and this were the submissions we got.

        Everything starts small, and the resulting submissions are interesting.

        1. 2

          Fair enough. The name of the contest made me expect more submissions for some reason.

          1. 14

            Well, you have to pick the name before the submissions. :) We’d have preferred more, but there will definitely be a re-run, given that the submissions show an interesting gamut of things you have to watch out for Rust:

            • Soundness holes: One of them uses a (not yet fixed) soundness hole in borrow checking
            • API behaviour: Even if it’s not broken, it can be surprising. No one can keep all exact behaviours in their head all the time. One uses the behaviour of Path.join, which is similar to Pythons
            • Environment: One uses the fact that deploy environments may have a copy of the crates.io index.

            Still, we’re quite happy that no one found ways to hide something that are absolutely specific to Rust. Our running theory is that Rusts aversion of implicit behaviour helps a lot there.

            Now, this is in no way a proof of this theory: the number of people that know every corner of the language is smaller for Rust then for C, so maybe there’s stuff that just wasn’t found yet.

            1. 4

              This bug? It’s still open.


              1. 3

                Correct, fixed the description. I’m currently gearing up for running RustFest, so I wrote it down from memory.

                I mixed it with this one, which is fixed: https://github.com/rust-lang/rust/issues/41622

                Thanks for the critical reading :)

                1. 3

                  Any time. :) wasn’t sure if I’d missed something.