My choice to pick Go over D ( and Rust ), mostly non-technical
Ralph Doncaster
nerdralph at github.com
Tue Feb 6 21:44:16 UTC 2018
On Tuesday, 6 February 2018 at 20:55:31 UTC, Adam D. Ruppe wrote:
> On Tuesday, 6 February 2018 at 20:25:22 UTC, Ralph Doncaster
> wrote:
>> The opencl package in dub is a crude wrapper around the
>> original C API. I couldn't find any sha lib, so I've started
>> porting a reference sha3 implementation from C.
>
> Don't port libraries like that, just call them directly.
> Porting crypto stuff is just asking for bugs and there's fairly
> little benefit over just calling them.
Is there an automatic way to make D wrappers for all the C
function calls?
There's also the problem that the test code for the C/C++
libraries would have to be wrapped up into the library or ported
to D.
Although I'm new to D, I do know crypto quite well, and
especially sha3/keccak. One reason I considered porting was to
see if dmd outputs better code than gcc. On x86_64 with the xmm
registers there is enough room for 1600 bits of the keccak state
to be stored in registers, but gcc 5.4 will still use RAM for the
state. It stays in L1, but storing all the state in registers
should be much faster as it would avoid a lot of mov instructions
loading parts of the state into registers.
More information about the Digitalmars-d
mailing list