www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - ASan blacklist

reply Johan Engelen <j j.nl> writes:
Hi all,
   I want to add ASan blacklists to our repo as Jon Degenhardt 
suggested, so we can collaborate on working towards ASan-enabled 
standard libraries.
What would you prefer?
Option 1:  create separate blacklists for phobos and druntime, 
and put them in the submodules
Option 2: one blacklist for all, put it in LDC's runtime 
directory.
Option 3: something else.

Thanks for feedback,
   Johan
Dec 27 2017
next sibling parent reply kinke <noone nowhere.com> writes:
On Wednesday, 27 December 2017 at 19:32:25 UTC, Johan Engelen 
wrote:
 Hi all,
   I want to add ASan blacklists to our repo as Jon Degenhardt 
 suggested, so we can collaborate on working towards 
 ASan-enabled standard libraries.
 What would you prefer?
 Option 1:  create separate blacklists for phobos and druntime, 
 and put them in the submodules
 Option 2: one blacklist for all, put it in LDC's runtime 
 directory.
 Option 3: something else.

 Thanks for feedback,
   Johan
No strong opinion about this; I think it also depends on the number of blacklist entries. I'd expect way more entries for druntime; in case there'd be none for Phobos at all, I'd put them in the druntime repo.
Dec 31 2017
parent reply Johan Engelen <j j.nl> writes:
On Sunday, 31 December 2017 at 12:20:32 UTC, kinke wrote:
 On Wednesday, 27 December 2017 at 19:32:25 UTC, Johan Engelen 
 wrote:
 Hi all,
   I want to add ASan blacklists to our repo as Jon Degenhardt 
 suggested, so we can collaborate on working towards 
 ASan-enabled standard libraries.
 What would you prefer?
 Option 1:  create separate blacklists for phobos and druntime, 
 and put them in the submodules
 Option 2: one blacklist for all, put it in LDC's runtime 
 directory.
 Option 3: something else.
No strong opinion about this; I think it also depends on the number of blacklist entries. I'd expect way more entries for druntime; in case there'd be none for Phobos at all, I'd put them in the druntime repo.
After thinking a bit more about it, I feel the blacklist should go into the repo that contains the functions it is blacklisting. That way, the codefix+blacklist-removal (or code annotation and blacklist update from unchecked section to checked) happens in one commit, instead of two commits in different repos. Indeed, I also expect that eventually there shouldn't be any blacklist necessary for Phobos code. So then we'll just remove it. (btw, I think this should be upstreamed at some point; druntime and Phobos upstream should have permanent ASan testing upstream too) -Johan
Dec 31 2017
parent Seb <seb wilzba.ch> writes:
On Sunday, 31 December 2017 at 13:10:50 UTC, Johan Engelen wrote:
 (btw, I think this should be upstreamed at some point; druntime 
 and Phobos upstream should have permanent ASan testing upstream 
 too)
Yes, that would be really cool! Just let me/us know in #druntime or #dmd what needs to happen for this to become reality.
Dec 31 2017
prev sibling next sibling parent Kagamin <spam here.lot> writes:
Huh? ASan is only good for languages without bound checking and 
mandatory mmm like C. How is it useful for D?
Jan 17
prev sibling parent Johan Engelen <j j.nl> writes:
On Wednesday, 27 December 2017 at 19:32:25 UTC, Johan Engelen 
wrote:
 Hi all,
   I want to add ASan blacklists to our repo as Jon Degenhardt 
 suggested, so we can collaborate on working towards 
 ASan-enabled standard libraries.
I've picked this task up again. The current blacklist is... blacklisting pretty much everything :) But then I can get all druntime tests to pass, and also almost all Phobos tests (I think the failures are unrelated). Note: tests need to be run with env variable ASAN_OPTIONS=allocator_may_return_null=1. ``` fun:_D*callWithStackShell* fun:_D*getcacheinfoCPUID2* # Blanket blacklist druntime module trees fun:_D2gc* fun:_D4core* fun:_D4rt* fun:_D6object* # Blacklist extern(C) druntime functions fun:_thread_scanAll fun:*_d_array* fun:*_d_alloc* fun:*_d_new* fun:*_d_del* fun:*_d_critical* fun:*_d_eh* fun:*_d_throw* # Blanket blacklist Phobos fun:_D3std* ``` Hope to put this in place soon, then add a CI job with it, and then the fun can start :-) Cheers, Johan
Feb 27