News for hackers. Stuff that matters.
Re:My experience rewriting Enjarify in Rust by dbaupp on Monday September 19, 2016 @02:00PM (#12533320)
Note that "pass by value" isn't a copy in a language with affine types like Rust.

I'm not sure passing everything by reference probably would gain much in a systems programming language in the vein of Rust: one would still need some syntactic method to distinguish between shared ("immutable") and non-shared ("mutable") references. Also, Rust-style static reasoning cares about things actually being pointers, to allow returning references safely. Lastly, being able to move things around is important too, it is a major part in Rust creating zero-overhead abstractions.

I'm not sure exactly how MLKit works, but I glanced over https://github.com/melsman/mlkit/blob/master/doc/mlkit.pdf and it seems to me that its regions are somewhat less static and that it doesn't attempt to handle concurrency. I could be wrong on both counts!

Re:My experience rewriting Enjarify in Rust by cousin_it on Tuesday September 20, 2016 @08:36AM (#12538989)
I think you could have mut visible at the language level, but otherwise have all parameter passing look and feel like Java, without any pointer noise or implicit copying.
Re:My experience rewriting Enjarify in Rust by masklinn on Tuesday September 20, 2016 @10:10AM (#12539595)
How would lifetimes work? Java & al get away with it because they don't reify lifetimes and the concepts of reference and value are moved at the type level (and they don't use affine types).
Re:My experience rewriting Enjarify in Rust by cousin_it on Tuesday September 20, 2016 @03:55PM (#12542781)
From looking at research languages with similar systems (Mezzo, LinearML...) none of them seem to have pointer noise. I might be missing something though.