digitalmars.D.ldc - ASan blacklist
- Johan Engelen (12/12) Dec 27 2017 Hi all,
- kinke (6/18) Dec 31 2017 No strong opinion about this; I think it also depends on the
- Johan Engelen (12/28) Dec 31 2017 After thinking a bit more about it, I feel the blacklist should
- Seb (3/6) Dec 31 2017 Yes, that would be really cool! Just let me/us know in #druntime
- Kagamin (2/2) Jan 17 2018 Huh? ASan is only good for languages without bound checking and
- Johan Engelen (32/36) Feb 27 2018 I've picked this task up again.
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
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, JohanNo 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
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: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) -JohanHi 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.
Dec 31 2017
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
Huh? ASan is only good for languages without bound checking and mandatory mmm like C. How is it useful for D?
Jan 17 2018
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* fun:_D2gc* fun:_D4core* fun:_D4rt* fun:_D6object* fun:_thread_scanAll fun:*_d_array* fun:*_d_alloc* fun:*_d_new* fun:*_d_del* fun:*_d_critical* fun:*_d_eh* fun:*_d_throw* 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 2018