On Tue, Jun 11, 2013 at 10:57:05AM +0200, Gwenaël Casaccio wrote:

> Debug informations were added in the VM compiler, now they are
> added in the STCompiler with a test case in the file
> DebugInformationTests.st

"now the generation of them is added..."?


>       <category: 'accessing'>
> +        self methodClass == class ifTrue: [ ^ self ].
>       ^self methodClass isNil 
>           ifTrue: 
>               [self


how often is >>#withNewMetodClass: called? Is this extra code
making a performance difference? Do you have a number?

> +
> +Object subclass: Foo [
> +]

maybe you want to re-use the setUp/tearDown as done in the other
testcase?


> +TestCase subclass: TestDebugInformation [

        setUp [
                self assert: Behavior compilerClass == STInST.STCompiler?

                (or as part of the testcase?)
        ]

> +    testDebugInformation [
> +        <category: 'testing'>
> +
> +        | mth |
> +        Foo compile: 'a_1: i_1 a_2: i_2 [

mth := Foo compile: ...?

> +    | i j k |
> +
> +    ^ [ :a :b :c | | d e f | ]
> +]'.
> +
> +        mth := Foo>>#'a_1:a_2:'.
> +        self assert: (mth arguments = #(#'i_1' #'i_2')).
> +        self assert: (mth temporaries =  #(#'i' #'j' #'k')).
> +        self assert: ((mth blockAt: 1) arguments = #(#'a' #'b' #'c')).
> +        self assert: ((mth blockAt: 1) temporaries =  #(#'d' #'e' #'f')).

nice.


> +
> +
> +    createDebugInformationFor: aCompiledCode from: aNode [
> +     <category: 'debug informations'>
> +
> +        debugInfo at: aCompiledCode put: (DebugInformation variables: 
> ((aNode argumentNames collect: [ :each | each asSymbol]),  (aNode body 
> temporaryNames collect: [ :each | each asSymbol])) asArray).


okay.

_______________________________________________
help-smalltalk mailing list
help-smalltalk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to