> Even though Rust is a performance conscious language (since it aims at
displacing C and C++), the 80/20 rule still applies and most of Rust code
should not require absolute speed

This is a mistaken assumption. Systems programming exists on the extreme
end of the programming spectrum where edge cases are the norm, not the
exception, and where 80/20 does not apply. If you don't require absolute
speed, why are you using Rust?


On Sun, Jun 22, 2014 at 6:37 AM, Matthieu Monrocq <
matthieu.monr...@gmail.com> wrote:

> I am not a fan of having wrap-around and non-wrap-around types, because
> whether you use wrap-around arithmetic or not is, in the end, an
> implementation detail, and having to switch types left and right whenever
> going from one mode to the other is going to be a lot of boilerplate.
>
> Instead, why not take the same road than swift and map +, -, * and / to
> non-wrap-around operators and declare new (more verbose) operators for the
> rare case where performance matters or wrap-around is the right semantics ?
>
> Even though Rust is a performance conscious language (since it aims at
> displacing C and C++), the 80/20 rule still applies and most of Rust code
> should not require absolute speed; so let's make it convenient to write
> safe code and prevent newcomers from shooting themselves in the foot by
> providing safety by default, and for those who profiled their applications
> or are writing hashing algorithms *also* provide the necessary escape
> hatches.
>
> This way we can have our cake and eat it too... or am I missing something ?
>
> -- Matthieu
>
>
>
> On Sun, Jun 22, 2014 at 5:45 AM, comex <com...@gmail.com> wrote:
>
>> On Sat, Jun 21, 2014 at 7:10 PM, Daniel Micay <danielmi...@gmail.com>
>> wrote:
>> >> Er... since when?  Many single-byte opcodes in x86-64 corresponding to
>> >> deprecated x86 instructions are currently undefined.
>> >
>> > http://ref.x86asm.net/coder64.html
>> >
>> > I don't see enough gaps here for the necessary instructions.
>>
>> You can see a significant number of invalid one-byte entries, 06, 07,
>> 0e, 1e, 1f, etc.  The simplest addition would just be to resurrect
>> INTO and make it efficient - assuming signed 64 and 32 bit integers
>> are good enough for most use cases.  Alternatively, it could be two
>> one-byte instructions to add an unsigned version (perhaps a waste of
>> precious slots) or a two-byte instruction which could perhaps allow
>> trapping on any condition.  Am I missing something?
>> _______________________________________________
>> Rust-dev mailing list
>> Rust-dev@mozilla.org
>> https://mail.mozilla.org/listinfo/rust-dev
>>
>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to