Thanks Stefan. In fact, you were right. If I DO NOT define DNDEBUG, assertions. If I define it (with whatever value), no assertions. Now, I think that I was to naive to understand Eliot's first answer:
"
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.
"
So..I should have NOT understood them literal "Hence NDEBUG=0 for
production and NDEBUG=1 for debug" but instead that for debug I DO NOT have to define NDEBUG but I do for production ?
And even more, when Igor said "and so it doesn't matters if it = 1 or = 0
because it is defined, but don't cares which value." he was correct.