[Vm-dev] '-DNDEBUG=0' and '-DDEBUGVM=1'

Mariano Martinez Peck marianopeck at gmail.com
Wed Apr 13 16:52:40 UTC 2011


Thanks Eliot for the explanation. So, some of those confs are incorrect. I
will commit a fix tonight.

Mariano

On Wed, Apr 13, 2011 at 6:35 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
>
>
> On Wed, Apr 13, 2011 at 9:06 AM, Mariano Martinez Peck <
> marianopeck at gmail.com> wrote:
>
>>
>> Hi Eliot. I am not sure if I understand correctly these flags, and if I
>> do, then I think the CMake configurations are wrong.
>>
>> First, what are those flags intended for?   Which should be tuned on and
>> which one off for both, release and debug ?
>>
>
> NDEBUG is a Mac OS X/FreeBSD/Linux flag that controls asserts.  To get
> asserts working in Cog it was easiest to use this flag.  So if NDEBUG=0
> asserts are eliminated and if NDEBUG=1 they are included and cause a warning
> to be printed to stdout when enabled (via a call to warning).  See
> platforms/Cross/vm/sqAssert.h.  Hence NDEBUG=0 for production and NDEBUG=1
> for debug and assert VMs.
>
> DEBUGVM is a flag controlling details of code generation for the
> entry-points that jump from the interpreter into machine code.  Seer DEBUGVM
> and Debug in src/vm/cogit.c.  I needed this early on in development when the
> system was flakey.  Now I never use it.  One might suggest eliminating it
> but it will probably be useful again when we add new code generators (e.g.
> for ARM and x86-64).  So DEBUGVM=0 for production and assert VMs and either
> 1 or 0 for debug VMs, depending on what kind of problems you're looking to
> debug.
>
> HTH
> Eliot
>
>
>> In Unix/Windows conf, onlt for release, these are set:
>> -DDEBUGVM=0 -DNDEBUG
>>
>> Mac Carbon release
>> -DDEBUGVM=0 -DNDEBUG=1
>>
>> Mac Cocoa Cog (CocoaIOSCogConfig) debug
>>  '-DNDEBUG=1' '-DDEBUGVM=0'
>>
>> Mac Cocoa Cog (CocoaIOSCogConfig) release
>> '-DNDEBUG=1' '-DDEBUGVM=0'
>>
>> Mac Cocoa Cog MT  debug
>> -DNDEBUG=0' '-DDEBUGVM=1'
>>
>> Mac Cocoa Cog MT  release
>> '-DNDEBUG=0' '-DDEBUGVM=1'
>>
>>
>> So...this is a mess.  Mac Cocoa Cog MT,  have the same for both release
>> and debug. Is this correct?
>> Mac Cocoa Cog, idem Mac Cocoa Cog MT
>>
>> What is worst, Mac Cocoa Cog MT is the opposite of Mac Cocoa Cog
>>
>> so...i have no idea how this should be, but sounds strange for me
>>
>> Cheers
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>>
>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110413/19df70b1/attachment.htm


More information about the Vm-dev mailing list