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