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

Eliot Miranda eliot.miranda at gmail.com
Wed Apr 13 16:35:48 UTC 2011


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
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110413/a6cf15fd/attachment-0001.htm


More information about the Vm-dev mailing list