Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
December 27, 2017 ASan blacklist | ||||
---|---|---|---|---|
| ||||
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 |
December 31, 2017 Re: ASan blacklist | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | 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.
|
December 31, 2017 Re: ASan blacklist | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | 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
|
December 31, 2017 Re: ASan blacklist | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | 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. |
January 17, 2018 Re: ASan blacklist | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | Huh? ASan is only good for languages without bound checking and mandatory mmm like C. How is it useful for D? |
February 27, 2018 Re: ASan blacklist | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | 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 |
Copyright © 1999-2021 by the D Language Foundation