Re: Release D 2.087.0

2019-07-05 Thread Mike Parker via Digitalmars-d-announce

On Thursday, 4 July 2019 at 08:11:26 UTC, Martin Nowak wrote:

Glad to announce D 2.087.0, ♥ to the 63 contributors.

This release comes with types matching single template alias 
parameters, nested template methods/local template functions, 
multi-threaded GC marking, and a phobos compiled with 
-preview=DIP1000.


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


-Martin


The blog announcement:

https://dlang.org/blog/2019/07/05/dmd-2-087-0-released/

And on reddit:

https://www.reddit.com/r/programming/comments/c9g5pg/d_20870_released/


Re: neomimalloc [D wrapper for mimalloc] - v0.0.3

2019-07-05 Thread Paolo Invernizzi via Digitalmars-d-announce

On Friday, 5 July 2019 at 12:42:22 UTC, Andrea Fontana wrote:
On Friday, 5 July 2019 at 09:57:58 UTC, Ernesto Castellotti 
wrote:
I am happy to announce the first preliminary version of 
neomimalloc!



And I'm happy Dlang is spreading in Italy too!


Yay!

Paolo



Re: neomimalloc [D wrapper for mimalloc] - v0.0.3

2019-07-05 Thread Ernesto Castellotti via Digitalmars-d-announce

On Friday, 5 July 2019 at 12:42:22 UTC, Andrea Fontana wrote:
On Friday, 5 July 2019 at 09:57:58 UTC, Ernesto Castellotti 
wrote:
I am happy to announce the first preliminary version of 
neomimalloc!


Nice project Ernesto!

It sounds funny that Windows is the only platform where this 
Microsoft project doesn't run!


And I'm happy Dlang is spreading in Italy too!

Andrea


(t's a problem with my wrapper, not the microsoft project


Re: neomimalloc [D wrapper for mimalloc] - v0.0.3

2019-07-05 Thread Andrea Fontana via Digitalmars-d-announce

On Friday, 5 July 2019 at 09:57:58 UTC, Ernesto Castellotti wrote:
I am happy to announce the first preliminary version of 
neomimalloc!


Nice project Ernesto!

It sounds funny that Windows is the only platform where this 
Microsoft project doesn't run!


And I'm happy Dlang is spreading in Italy too!

Andrea


Re: Release D 2.087.0

2019-07-05 Thread Yatheendra via Digitalmars-d-announce
Another stat that might make sense to people who have the history 
of that stat, is views of videos in the foundation's channel and 
in the Dconf channels on YouTube.


neomimalloc [D wrapper for mimalloc] - v0.0.3

2019-07-05 Thread Ernesto Castellotti via Digitalmars-d-announce
I am happy to announce the first preliminary version of 
neomimalloc!


neomimalloc is a wrapper to easily use the mimalloc allocator 
developed by Microsoft Research, this allocator is having a great 
success and it seems that the Rust community is thinking of using 
it by default instead of jemalloc 
(https://github.com/rust-lang/rust/pull/62340) so I think it is 
very useful for the DLang community to have a working wrapper for 
this modern allocator.


I created neomimalloc based on two principles that I consider 
fundamental for this kind of wrapper:


1) Provide a complete solution easy to use, I think it is 
particularly stupid to force the user to install a shared library 
to use a third party allocator, doing so would be very difficult 
to use in all DLang software.
So I realized a solution: the neomimalloc dub package compiles 
the allocator and includes the symbols directly in its static 
library, so the user only needs to add neomimalloc as a 
dependency to his project in order to have mimalloc included in 
his executable.


2) Being able to use the allocator with the high level API 
present in phobos 
(https://dlang.org/phobos/std_experimental_allocator.html), this 
is really very useful because it allows users to use the 
allocator as if it were included in the library  D standard!
The usage is really the same, to do this I implemented the 
wrapper following the instructions in the phobos documentation 
(https://dlang.org/phobos/std_experimental_allocator_building_blocks.html)


3) In addition to the high-level interface, provide the bindings 
with C to the user to allow the use directly and to provide those 
APIs specific to mimalloc that could not be used by the 
high-level interface



Currently there are some issues in this wrapper, mainly:

1) It only supports POSIX operating systems, this is not linked 
to a lack of mimalloc but it is a problem of my package because 
currently it is not able to compile mimalloc itself from dub.json 
for Windows operating systems
This is mainly related to my total non  knowledge of Windows 
operating systems so if someone knows them better than me, please 
help me solve the problem, pull requests are welcome!


2) Need for git during the compilation phase of the dub package, 
this because dub does not support repository cloning recursively 
(https://github.com/dlang/dub/issues/1044) so I have to do it 
manually with a bad hack (clone recursively the neomimalloc 
repository again in a temporary directory, very bad to do)


3) mimalloc provides many other implementations to allocate 
memory in addition to the classic malloc (eg zalloc, calloc 
etc.), it would be nice to support all allocators with high-level 
interfaces, of course low-level bindings support all mimalllc 
functions


The dub package allows 5 types of configuration:

1) standard: is the default configuration of neomimalloc, builda 
mimalloc without any particular additional feature


2) secure: builds mimalloc in secure mode (adding guard pages, 
randomized allocation, encrypted free lists, etc) to protect 
against various heap vulnerabilities with a slight performance 
penalty


3) override-malloc: like the standard configuration but 
overriding the libc allocator symbols, for example the 
core.stdc.stdlib.malloc function instead of calling the classic 
libc allocator will use mimalloc (obviously this will also happen 
with calloc, realloc etc)


4) override-malloc-secure: like the override-malloc but enable 
secure mode


5) manual-link: link to mimalloc as shared library without builds 
mimalloc, currently it is not implemented yet so it should not be 
used



dub package: http://neomimalloc.dub.pm
neomimalloc git repository: 
https://github.com/ErnyTech/neomimalloc.git

neomimalloc docs: https://neomimalloc.dpldocs.info

mimalloc git repository: https://github.com/microsoft/mimalloc.git
mimalloc docs: https://microsoft.github.io/mimalloc
mimalloc publication: 
https://www.microsoft.com/en-us/research/uploads/prod/2019/06/mimalloc-tr-v1.pdf