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

Mariano Martinez Peck marianopeck at gmail.com
Tue Apr 26 00:05:25 UTC 2011


Hi guys. I don't know why but with CMakeVMMaker the asserts are not
working.  I can see the flags are being set correct in CmakeList.txt:

add_definitions(-arch i386 -mmacosx-version-min=10.5 -g3 -O0 -msse3
-funroll-loops -fasm-blocks -finline-functions -mfpmath=sse -march=pentium-m
-falign-functions=16 -fno-gcse -fno-cse-follow-jumps -std=gnu99
-DBUILD_FOR_OSX -DUSE_INLINE_MEMORY_ACCESSORS -DLSB_FIRST -DHAVE_SYS_TIME_H
-DHAVE_NANOSLEEP -DNDEBUG=1 -DDEBUGVM=1 -DCOGMTVM=1 -DUSE_GLOBAL_STRUCT=0
-DBASE_HEADER_SIZE=4 -DCOGVM)

I modified the StackInterpreter to this:

lookupMethodInClass: class
    | currentClass dictionary found |
    <inline: false>
    self asserta: '42' = 'cuarenta y tres'.
    self assert: 'mariano' = 'esta perdido'.
    self print: 'grrrr'; cr.

.....

and only 'grrr' is printed. The TWO previous assert are ignored.

I may be doing something very stupid...

thanks in advance,

Mariano



On Wed, Apr 13, 2011 at 8:06 PM, Igor Stasenko <siguctua at gmail.com> wrote:

>
> On 13 April 2011 19:13, Mariano Martinez Peck <marianopeck at gmail.com>
> wrote:
> > I've just commited the fix, but not the comment ;)
> >
> > Seriously, I don't know how we can document this kind of things.
> > Putting such comments in #compilerFlagsRelease  or #compilerFlagsRelease
> > doesn't make sense because they are aprox. 12 implementaions...I don't
> want
> > to copy paste to all of them. Only in one? it doesn't make sense because
> > people won't see it. So..how we document this kind of things?  I have no
> > idea.
> >
> > The same with class comments. There are so many classes that copy pasting
> or
> > documenting only one doesn't make sense.
> >
>
> The root class is enough.
> A subclasses should just say something like 'i am special for
> ___that__ and do things differently because i want __that__'.
>
>
> > The only thing I though is doing something like this:
> >
> >
> > compilerFlagsRelease
> >     ^#('-g3' '-Os' '-fvisibility=hidden' '-funroll-loops' '-fasm-blocks'
> > '-finline-functions' '-mfpmath=sse' '-fomit-frame-pointer'
> > '-march=pentium-m' '-mtune=prescott' '-falign-functions=16' '-fno-gcse'
> > '-fno-cse-follow-jumps' '-std=gnu99' '-DBUILD_FOR_OSX'
> > '-DUSE_INLINE_MEMORY_ACCESSORS' '-DLSB_FIRST'
> > '-DUSE_INLINE_MEMORY_ACCESSORS' '-DHAVE_SYS_TIME_H' '-DHAVE_NANOSLEEP'
> > '-DNDEBUG=0' , self debugVMFlag: true,  '-DCOGMTVM=0'
> > '-DUSE_GLOBAL_STRUCT=0' '-DBASE_HEADER_SIZE=4')
> >
> >>>debugVMFlagEnable: boolean
> > "THIS flag is blagh...blh..."
> > ^ '-DDEBUGVM=', boolean asNumber asString
> >
> > or something like that...
> >
> >
>
> This knowledge is important. It of course a question where to put that,
> but that's exactly why i didn't wanted to use autoconf to generate
> config.h file, which contains like 50 various flags,
> without any clues, where these flags being used, and in what
> situations they should be turned on or off..
>
> So, later we could step over every flag and properly document them,
> and like that, for people who will come later, we will have an idea
> what are need to deal with and why.
>
> > cheers
> >
> > Mariano
> >
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>



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


More information about the Vm-dev mailing list