DNU: WriteStream>>withStyleFor:do:

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

DNU: WriteStream>>withStyleFor:do:

Igor Stasenko
Hello,

i found that i can't debug doits which look like following:

| mytemp |
mytemp := foo bar.

(select the above code and use 'debug it')

a ByteCodeAgnosticMethodNode>>printOn:

sends a #withStyleFor:do: for printing temps on a stream.
But stream does not understands this message.

The WriteStream instance, used for printing a source is created in given method:

fullPrintString
        "Answer a String whose characters are a description of the receiver."

        ^ String streamContents: [:s | self printOn: s]


IMO, this is wrong.
ByteCodeAgnosticMethodNode should not assume that
output stream (supplied in #printOn: argument) supports any styling.
For instance i can supply a file stream to it, so a method node will
print its decompiled contents into a file. And, obviously, there is no
any styling available.


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: DNU: WriteStream>>withStyleFor:do:

Eliot Miranda-2
Hi Igor,

On Sat, May 1, 2010 at 11:05 PM, Igor Stasenko <[hidden email]> wrote:
Hello,

i found that i can't debug doits which look like following:

| mytemp |
mytemp := foo bar.

(select the above code and use 'debug it')

a ByteCodeAgnosticMethodNode>>printOn:

sends a #withStyleFor:do: for printing temps on a stream.
But stream does not understands this message.

The WriteStream instance, used for printing a source is created in given method:

fullPrintString
       "Answer a String whose characters are a description of the receiver."

       ^ String streamContents: [:s | self printOn: s]


IMO, this is wrong.

Damn right :)  I don't see any print methods in my Teleplace image on ByteCodeAgnosticMethodNode, and I see no senders of withStyleFor:do: in 4.1.  Which image are you working in?


ByteCodeAgnosticMethodNode should not assume that
output stream (supplied in #printOn: argument) supports any styling.
For instance i can supply a file stream to it, so a method node will
print its decompiled contents into a file. And, obviously, there is no
any styling available.


--
Best regards,
Igor Stasenko AKA sig.




Reply | Threaded
Open this post in threaded view
|

Re: DNU: WriteStream>>withStyleFor:do:

Igor Stasenko
On 4 May 2010 01:48, Eliot Miranda <[hidden email]> wrote:

> Hi Igor,
>
> On Sat, May 1, 2010 at 11:05 PM, Igor Stasenko <[hidden email]> wrote:
>>
>> Hello,
>>
>> i found that i can't debug doits which look like following:
>>
>> | mytemp |
>> mytemp := foo bar.
>>
>> (select the above code and use 'debug it')
>>
>> a ByteCodeAgnosticMethodNode>>printOn:
>>
>> sends a #withStyleFor:do: for printing temps on a stream.
>> But stream does not understands this message.
>>
>> The WriteStream instance, used for printing a source is created in given
>> method:
>>
>> fullPrintString
>>        "Answer a String whose characters are a description of the
>> receiver."
>>
>>        ^ String streamContents: [:s | self printOn: s]
>>
>>
>> IMO, this is wrong.
>
> Damn right :)  I don't see any print methods in my Teleplace image
> on ByteCodeAgnosticMethodNode, and I see no senders of withStyleFor:do: in
> 4.1.  Which image are you working in?
>

Good that you responded. Just checked it and found that it comes from
Alien package.

MethodNode>>printOn: aStream
eem 1/2/2008 18:11 · *Alien-Core-override · 236 implementors · only in
change set Alien-Prereqs-mha.3  ·

so, aliens seems like a bit evil! :)

>> ByteCodeAgnosticMethodNode should not assume that
>> output stream (supplied in #printOn: argument) supports any styling.
>> For instance i can supply a file stream to it, so a method node will
>> print its decompiled contents into a file. And, obviously, there is no
>> any styling available.
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.


--
Best regards,
Igor Stasenko AKA sig.