flag -ignore_nogc to allow breaking nogc rules during debugging [analog to debug for pure]

2016-01-10 Thread Timothee Cour via Digitalmars-d
this would make error handling trivial and solve issues such as this:

FORUM:formatted assert error messages inside nogc functions
http://forum.dlang.org/thread/CANri+EyNyrhMWGCSqZHx_vXDJFSrwhOrV=j2katz6t9-upt...@mail.gmail.com

usage:

during development:
dmd -debug -ignore_nogc other_flags foo.d
during release:
dmd other_flags foo.d

@nogc
void test(int a){

version(ignore_nogc)
  assert(a==1, text("a = ", a));
else
  assert(a==1, "a = ?");

}


Re: flag -ignore_nogc to allow breaking nogc rules during debugging [analog to debug for pure]

2016-01-10 Thread rsw0x via Digitalmars-d

On Sunday, 10 January 2016 at 09:17:20 UTC, Timothee Cour wrote:
this would make error handling trivial and solve issues such as 
this:


FORUM:formatted assert error messages inside nogc functions 
http://forum.dlang.org/thread/CANri+EyNyrhMWGCSqZHx_vXDJFSrwhOrV=j2katz6t9-upt...@mail.gmail.com


usage:

during development:
dmd -debug -ignore_nogc other_flags foo.d
during release:
dmd other_flags foo.d

@nogc
void test(int a){

version(ignore_nogc)
  assert(a==1, text("a = ", a));
else
  assert(a==1, "a = ?");

}


is there a valid reason that debug shouldn't just ignore @nogc?
this is also an issue with contracts iirc


Re: flag -ignore_nogc to allow breaking nogc rules during debugging [analog to debug for pure]

2016-01-10 Thread Timothee Cour via Digitalmars-d
just more fine-grained control ... but either way.
having an escape away from nogc would be needed.


On Sun, Jan 10, 2016 at 1:56 AM, rsw0x via Digitalmars-d <
digitalmars-d@puremagic.com> wrote:

> On Sunday, 10 January 2016 at 09:17:20 UTC, Timothee Cour wrote:
>
>> this would make error handling trivial and solve issues such as this:
>>
>> FORUM:formatted assert error messages inside nogc functions
>> http://forum.dlang.org/thread/CANri+EyNyrhMWGCSqZHx_vXDJFSrwhOrV=j2katz6t9-upt...@mail.gmail.com
>>
>> usage:
>>
>> during development:
>> dmd -debug -ignore_nogc other_flags foo.d
>> during release:
>> dmd other_flags foo.d
>>
>> @nogc
>> void test(int a){
>>
>> version(ignore_nogc)
>>   assert(a==1, text("a = ", a));
>> else
>>   assert(a==1, "a = ?");
>>
>> }
>>
>
> is there a valid reason that debug shouldn't just ignore @nogc?
> this is also an issue with contracts iirc
>


Re: flag -ignore_nogc to allow breaking nogc rules during debugging [analog to debug for pure]

2016-01-10 Thread Guillaume Piolat via Digitalmars-d

On Sunday, 10 January 2016 at 12:33:19 UTC, Timothee Cour wrote:

just more fine-grained control ... but either way.
having an escape away from nogc would be needed.



Is it a bit annoying to use, but have you aware of: 
http://p0nce.github.io/d-idioms/#Bypassing-@nogc ?