[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [csmith-dev] Using safe math headers in csmith



Hi Karine,

The workflow on GitHub is that you should "fork" the repository so that you have your own copy on GitHub. Call that forked copy "origin", and call John's fork "upstream".
git clone your fork locally. git push your changes to a feature branch -- `git push origin mybranch`. Then, navigate to GitHub in your browser and create a pull request from your feature branch to John's master branch.

HTH,
Arthur

On Mon, Mar 30, 2020, 2:58 PM Even Mendoza, Karine <k.even-mendoza@imperial.ac.uk> wrote:
Hi John,

I am trying to create a pull request. I currently don't have access permissions to csmith GitHub, and cannot push a branch with the changes. Can you please assist?

Thanks,

Karine

From: Even Mendoza, Karine <k.even-mendoza@imperial.ac.uk>
Sent: 18 March 2020 07:17
To: John Regehr <regehr@cs.utah.edu>; csmith-dev@flux.utah.edu <csmith-dev@flux.utah.edu>
Subject: Re: [csmith-dev] Using safe math headers in csmith
 
Hi John,

Thank you much. Yes, I will prepare a pull request. I have already a sketch of these two header files, but I wish to try it on more examples.

Thanks,

Karine

From: John Regehr <regehr@cs.utah.edu>
Sent: 16 March 2020 15:28
To: Even Mendoza, Karine <k.even-mendoza@imperial.ac.uk>; csmith-dev@flux.utah.edu <csmith-dev@flux.utah.edu>
Subject: Re: [csmith-dev] Using safe math headers in csmith
 
Hi Karine, thanks for pointing this out.

I believe that we never used these features too much, so never noticed this.

Can I ask you to prepare a pull request fixing the easy parts, and then
we'll look at whatever's left?

Thanks,

John



On 3/16/20 3:48 AM, Even Mendoza, Karine wrote:
> Hi John
>
>
> I was testing csmith the macro options; however, when running on a large population of seed, we got testcases with a different output when using macros.
>
> I debugged it a bit, and it is due to 3 main issues: (1) safe condition checks are not always the same, (2) casting (between explicit C-like casting in the macros and implicit casting coming from the function signature), and last (3) brackets.
>
> I can relatively easily fix 2+3, however (1) tends to be a bit more tricky.
>
>
> For example:
> The seed: 314862222 produces a different result when using macros due to differences in the conditions (the ternary operator) in rshift_func_int8_t_s_u.
>
> I compile it and run it that way:
> ./src/csmith --seed 314862222 --bitfields --packed-struct >> temp_regular_5.c
> clang -I../runtimeExp -DUSE_MATH_MACROS -w -O temp_regular_5.c -o temp_macros_5
>
> The conditions:
> ((left < 0) || (((unsigned int)right) >= 32)) vs. (((int8_t)(left)) < ((int8_t)0)) || (((unsigned int)(right)) >= sizeof(int8_t)*CHAR_BIT)); these are evaluated to false vs. true for seed 314862222.
>
>
> Please let me know if more examples of seeds could help. I have several examples.
>
>
> Thanks much,
>
> Karine
>
> -----Original Message-----
> From: csmith-dev-bounces@flux.utah.edu <csmith-dev-bounces@flux.utah.edu> On Behalf Of John Regehr
> Sent: 24 February 2020 18:01
> To: csmith-dev@flux.utah.edu
> Subject: Re: [csmith-dev] Using safe math headers in csmith
>
>
> *******************
> This email originates from outside Imperial. Do not click on links and attachments unless you recognise the sender.
> If you trust the sender, add them to your safe senders list https://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
> *******************
> Hi Karine, ok, I looked into this. Both of these alternative header files appear to work just fine. If you want to use the NOTMP versions, you need to pass Csmith the additional --math-notmp flag.
>
> I ran this shell script a few times and both versions always produced the same checksum:
>
> ./src/csmith > foo.c
> clang -O0 -w foo.c -I../runtime -o foo1
> clang -O0 foo.c -I../runtime -DUSE_MATH_MACROS -w -o foo2 ulimit -t 2
> ./foo1
> ./foo2
>
> Let us know if anything doesn't work as advertised.
>
> John
>
>
>
> On 2/24/20 8:20 AM, John Regehr wrote:
>> Hi Karine,
>>
>> Well, I just tried to compile a program using -DUSE_MATH_MACROS_NOTMP
>> and it did not compile, so something must have gone wrong here. I
>> assume the same thing happened when you tried this?
>>
>> I'll try to look into it soon.
>>
>> John
>>
>>
>> On 2/24/20 2:28 AM, Even Mendoza, Karine wrote:
>>> Hi,
>>>
>>> I would like to know if the version of csmith using the header
>>> safe_math_macros.h or safe_math_macros_notmp.c is working.
>>>
>>> Can I use these headers instead of safe_math.h and expect the same
>>> output for the generated programs?
>>>
>>> Thanks much,
>>>
>>> Karine
>>>