Re: Beerconf May 2022

2022-05-26 Thread Steven Schveighoffer via Digitalmars-d-announce

On 5/14/22 3:41 PM, Steven Schveighoffer wrote:

# BEERCONF!

Man, the months go by quickly! Yet another Beerconf (YABC?) is upon us, 
in 2 weeks time. Join us for some lively discussion of D topics and 
drinking of tasty beverages on May 28-29.


Happening in 2 days. See you there!

-Steve


Re: HTTP frameworks benchmark focused on D libraries

2022-05-26 Thread tchaloupka via Digitalmars-d-announce

Hi,
as there are two more HTTP server implementations:

* 
[Serverino](https://forum.dlang.org/thread/bqsatbwjtoobpbzxd...@forum.dlang.org)
* 
[Archttp](https://forum.dlang.org/thread/jckjrgnmgsulewnre...@forum.dlang.org)


It was time to update some numbers!

Last results can be seen 
[here](https://github.com/tchaloupka/httpbench#multi-core-results) - it's a lot of numbers..


Some notes:

* I've updated all frameworks and compilers to latest versions
* tests has been run on the same host but separated using VMs 
(for workload generator and servers) with pinned CPUs (so they 
don't interfere each other)
* as I have "only" 16 available threads to be used and in 12 vs 4 
CPUs scenario wrk saturated all 12 CPUs, I had to switch it to 
14/2 CPUs to give wrk some space

* virtio bridged network between VMs
* `Archttp` have some problem with only 2 CPUs so it's included 
only in the first test (it was ok with 4 CPUs and was cca 2x 
faster than `hunt-web`)
* `Serverino` is set to use same number of processes as are CPUs 
(leaving it to default was slower so I kept it set like that)


One may notice some strange `adio-http` it the results. Well, 
it's a WIP framework (`adio` as an "async dlang I/O"), that is 
not public (yet). It has some design goals (due to it's  targeted 
usage), that some can prefer and some won't like at all:


* `betterC` - so no GC, no delegates, no classes (D ones), no 
exceptions, etc.
  * should be possible later to work with full D too, but it's 
easier to go from `betterC` to full D than other way around and 
is not in the focus now

* linux as an only target atm.
* `epoll` and `io_uring` async I/O api backends (can be extended 
with `IOCP` or `Kqueue`, but linux is main target now)
* performance, simplicity, safety in this order (and yes with 
`betterC` there are many pointers, function callbacks, manual 
memory management, etc. - thanks for `asan` ldc team ;-))
* middleware support - one can setup router with ie request 
logger, gzip, auth middlewares easily (REST API middleware would 
be one of them)
* can be used with just callbacks or combined with fibers (http 
server itself is fibers only as it would be a callback hell 
otherwise)

* each async operation can be set with timeout to simplify usage

It doesn't use any "hacks" in the benchmark. Just a real HTTP 
parser, simple path router, real headers writing, real `Date` 
header, etc. But has tuned parameters (no timeouts set - which 
others doesn't use too).
It'll be released when API settles a bit and real usage with 
sockets, websockets, http clients, REST API, etc. would be 
possible.


Re: Release D 2.100.0

2022-05-26 Thread Salih Dincer via Digitalmars-d-announce

On Sunday, 15 May 2022 at 11:05:38 UTC, Martin Nowak wrote:

Glad to announce D 2.100.0, ♥ to the 41 contributors.
[...]
http://dlang.org/changelog/2.100.0.html

-Martin


I'm still trying new features.  I loved it, thank you to everyone 
who contributed...


SDB@79


Re: Release D 2.100.0

2022-05-26 Thread Antonio via Digitalmars-d-announce

On Sunday, 15 May 2022 at 11:05:38 UTC, Martin Nowak wrote:

Glad to announce D 2.100.0, ♥ to the 41 contributors.

This release comes with improved C++ header gen, a new 
`@mustuse` attribute to enforce return-type error checking, a 
contract invariant version identifier, non-transitive inout 
returns, and many more improvements.


http://dlang.org/download.html
http://dlang.org/changelog/2.100.0.html

-Martin


An small great change:

https://dlang.org/changelog/2.100.0.html#std_typecons_nullable_range

Thanks a lot!!!