February 18, 2015
That's awesome !

Thanks for all the work you put in it, and more generally, in Vibe.d.

2015-02-17 22:00 GMT+01:00 Etienne via Digitalmars-d < digitalmars-d@puremagic.com>:

> I'd like to announce the first release of Botan, which implements all features of v1.11.10 in the C++ library.
>
> I gave special attention to properly translating it to correct D code.
>
> It only runs with DMD master for now, only tested on Linux x86 or x86_64, and it uses a custom allocator library called memutils which must be placed in ../
>
> I'd also want to underline that Alexander Bothe from Mono-D put some special attention to making sure the IDE runs smoothely with Botan.
>
> All tests are passing at the time of this writing (which is thousands of tests for all algorithms, incl x509, pubkeys, tls and so on).
>
> I'll let the wiki/api docs/code talk for me, I'm off to writing an TLS driver for vibe.d now
>
> Have fun!
>


February 18, 2015
On Tue, 17 Feb 2015 20:14:50 -0500, Etienne Cimon wrote:

> I'll be working on HTTP/2 with websocket-style full duplex communications once this is done, and then a CMS that has a windows explorer-like desktop front-end with a redis filesystem and distributed node management. So many nice projects :D

very intriguing. this will be interesting thing to play with. and i really like your passion. ;-)

February 18, 2015
On Wed, 18 Feb 2015 06:35:08 +0000, Joakim wrote:

> accompanied by benchmarks of the C++ and D code

it's better to keep silence. dmd was never very good in optimising code. ;-)

February 18, 2015
On Tue, 17 Feb 2015 20:14:50 -0500, Etienne Cimon wrote:

> So many nice projects :D

"We have such sights to show you!"

February 18, 2015
On Wednesday, 18 February 2015 at 04:17:16 UTC, Rikki Cattermole wrote:
> On 18/02/2015 5:01 p.m., Etienne Cimon wrote:
>> On 2015-02-17 20:54, Rikki Cattermole wrote:
>>> On 18/02/2015 10:00 a.m., Etienne wrote:
>>>> I'd like to announce the first release of Botan, which implements all
>>>> features of v1.11.10 in the C++ library.
>>>>
>>>> I gave special attention to properly translating it to correct D code.
>>>>
>>>> It only runs with DMD master for now, only tested on Linux x86 or
>>>> x86_64, and it uses a custom allocator library called memutils which
>>>> must be placed in ../
>>>>
>>>> I'd also want to underline that Alexander Bothe from Mono-D put some
>>>> special attention to making sure the IDE runs smoothely with Botan.
>>>>
>>>> All tests are passing at the time of this writing (which is thousands of
>>>> tests for all algorithms, incl x509, pubkeys, tls and so on).
>>>>
>>>> I'll let the wiki/api docs/code talk for me, I'm off to writing an TLS
>>>> driver for vibe.d now
>>>>
>>>> Have fun!
>>>
>>> I'm quite excited by this.
>>> I do hope however that we get an ssh library now. Maybe git + mercurial
>>> + svn as well.
>>> We could do so much with that!
>>
>>
>> It looks like this library (using Botan C++) could simply be translated
>> to D code:
>>
>> https://github.com/cdesjardins/ne7ssh
>>
>> The only problem I see is that it's licensed QPL. However, the
>> maintainer is missing and I think the library is simple enough to use it
>> as a guideline/reference (along with other RFCs and libraries) and
>> re-write an ssh library from scratch to get something new and original
>> out of it and possibly use a more open license
>
> I saw that, I was worried about the license as well.
> I'll ping Craig. Maybe there is still time for somebody to take it on for GSOC?

Having another project, or two, wouldn't be a issue.  I haven't submitted the proposal yet, and I don't think the Google folks will start looking at the idea's pages until early next week, so there is no issue as far as I see adding something as late as this weekend.

Having said that I am really busy this week and have been having trouble finding the time simply to fill out the Melange form and submit the proposal, I will get it done, so no need to worry.  However, if someone wants to add another idea to the ideas pages I am leaving that up to them!  Please try to follow the exiting template as close as possible ... if someone ends up doing this.


The following open-source licenses are approved, and I noticed QPL is on there:

http://opensource.org/licenses/alphabetical

Craig


February 18, 2015
On Wednesday, 18 February 2015 at 04:17:16 UTC, Rikki Cattermole
wrote:
> On 18/02/2015 5:01 p.m., Etienne Cimon wrote:
>> On 2015-02-17 20:54, Rikki Cattermole wrote:
>>> On 18/02/2015 10:00 a.m., Etienne wrote:
>>>> I'd like to announce the first release of Botan, which implements all
>>>> features of v1.11.10 in the C++ library.
>>>>
>>>> I gave special attention to properly translating it to correct D code.
>>>>
>>>> It only runs with DMD master for now, only tested on Linux x86 or
>>>> x86_64, and it uses a custom allocator library called memutils which
>>>> must be placed in ../
>>>>
>>>> I'd also want to underline that Alexander Bothe from Mono-D put some
>>>> special attention to making sure the IDE runs smoothely with Botan.
>>>>
>>>> All tests are passing at the time of this writing (which is thousands of
>>>> tests for all algorithms, incl x509, pubkeys, tls and so on).
>>>>
>>>> I'll let the wiki/api docs/code talk for me, I'm off to writing an TLS
>>>> driver for vibe.d now
>>>>
>>>> Have fun!
>>>
>>> I'm quite excited by this.
>>> I do hope however that we get an ssh library now. Maybe git + mercurial
>>> + svn as well.
>>> We could do so much with that!
>>
>>
>> It looks like this library (using Botan C++) could simply be translated
>> to D code:
>>
>> https://github.com/cdesjardins/ne7ssh
>>
>> The only problem I see is that it's licensed QPL. However, the
>> maintainer is missing and I think the library is simple enough to use it
>> as a guideline/reference (along with other RFCs and libraries) and
>> re-write an ssh library from scratch to get something new and original
>> out of it and possibly use a more open license
>
> I saw that, I was worried about the license as well.
> I'll ping Craig. Maybe there is still time for somebody to take it on for GSOC?

Having another project, or two, wouldn't be a issue.  I haven't
submitted the proposal yet, and I don't think the Google folks
will start looking at the idea's pages until early next week, so
there is no issue as far as I see adding something as late as
this weekend.

Having said that I am really busy this week and have been having
trouble finding the time simply to fill out the Melange form and
submit the proposal, I will get it done, so no need to worry.
However, if someone wants to add another idea to the ideas pages
I am leaving that up to them!  Please try to follow the exiting
template as close as possible ... if someone ends up doing this.


The following open-source licenses are approved, and I noticed
QPL is on there:

http://opensource.org/licenses/alphabetical

Craig

February 18, 2015
On 2015-02-18 02:14, Etienne Cimon wrote:

> My favorite part is: vibe.d projects now compiles the entire software stack into a
> fully-featured standalone executable without any license issues.

Isn't libevent required?

-- 
/Jacob Carlborg
February 18, 2015
On 2015-02-18 07:17, Jacob Carlborg wrote:
> On 2015-02-18 02:14, Etienne Cimon wrote:
>
>> My favorite part is: vibe.d projects now compiles the entire software
>> stack into a
>> fully-featured standalone executable without any license issues.
>
> Isn't libevent required?
>

Not anymore. I also wrote libasync and a vibe.d driver for it

https://github.com/etcimon/libasync
February 18, 2015
On 2015-02-18 01:35, Joakim wrote:
>
> Good work.  You should write up a post about the experience, perhaps
> accompanied by benchmarks of the C++ and D code.  It will help publicize
> your project and let others learn from your effort.

Sure, if you can somehow push this in DMD: http://forum.dlang.org/thread/m9lvn5$28cr$1@digitalmars.com

The release build won't work without it, I get an ICE and I didn't have time to isolate this :/

I won't have an LDC/GDC version for a few months, this project is like a big unit test of failing cases for those compilers
February 18, 2015
On 2015-02-18 05:22, ketmar wrote:
> On Wed, 18 Feb 2015 06:35:08 +0000, Joakim wrote:
>
>> accompanied by benchmarks of the C++ and D code
>
> it's better to keep silence. dmd was never very good in optimising
> code. ;-)
>

Not really, most of the sensitive code is optimized via native instructions, the crypto algorithms should be all the same. If you count the seconds for the unit test to run, powermod (public key cryptography) was equal in debug mode. Didn't check release though, but debug was 11sec and GCC optimizes the C++ version to 3 seconds :-p

The sensitive parts are AES-NI and GCM, where the processor does the encryption, and I handled with care those native instructions so that should be 600MB/s - 1GB/s regardless of the compiler

As for the learning experience, I spent most of the time doing search & replace from C to D types and names, writing utils/simd instructions (__m128i __m256i xmmintrins.h etc), writing memutils (~= STL) because I needed proper containers and allocators to work with.