On Apr 21, 2010, at 6:09 02PM, Peter Hugosson-Miller wrote:

> Hi all,
> 
> So it's time for me to stop lurking and do some stuff. However, although I am 
> an experienced Smalltalk programmer (VisualAge Smalltalk continuously since 
> 1995), I am a complete newb when it comes to Pharo and Squeak, it's hard to 
> find my way around, and it's going to take me some time to get up to speed.
> 
> I'm working on a small improvement to the testing framework, using ideas that 
> I have found to be very useful in my daily job over the past 15 years. Note 
> that I am doing this from scratch, so that I don't accidentally steal 
> anything that I've done in my work, but I know how it all works in VisualAge, 
> so I feel sure that I'll eventually be able to find the corresponding classes 
> and methods in Pharo.
> 
> What I would like are a few hints, clues and nudges in the right direction 
> for scenarios and questions that I will describe in this thread. What I 
> *don't* want are full-blown solutions, because then I won't learn anything. I 
> hope that some kind souls will be able to give me a little help in the 
> beginning that will eventually bring me up to speed and let me be productive.
> 
> So to start with, one scenario and one question:
> 
> 1) I want to find or write a method on Process that will print a stack trace 
> onto a supplied Stream. Ideally I'd like to be able to decide the start and 
> stop depth of the trace, so for example if I know that the top 4 stack frames 
> will always be uninteresting, I would want to be able to write something like 
> this:
> 
>       Processor activeProcess printStackFrom: 5 to: 15 on: aStream.
> 
> 2) What *exactly* is "thisContext"? It appears to be a reserved word in 
> Pharo, just like the familiar "self", "super", "true", "false", "nil" that 
> are always reserved in Smalltalk. I'd also like to get an idea of what it's 
> good for, and if anyone can describe it in terms of something that is in 
> VisualAge, that would be nice too :-)
> 
> BTW, if this is not the appropriate place for a thread like this, then please 
> tell me where I should put it (politely, of course :-p)
> 
> -- 
> Cheers,
> Peter
> ________________

I haven't used VA, but for instance, 2) allows you to write 1) as:
Process >> printStackFrom: start to: end on: aStream
        ((thisContext stackOfSize: end) removeFirst: start; yourself  ) 
                do: [:each | each printOn: aStream. aStream nextPut: Character 
cr].

;)

Cheers,
Henry
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to