Hi, these are good improvements! It will also improve performance a bit I think. currently I don't really have much time to work on it, but I will in maybe a week or so (or 2 weeks, possibly)
If people are looking for additional Exercises I suggest these are nice :-) kjs On Fri, Apr 11, 2008 at 5:32 AM, Patrick R. Michaud <[EMAIL PROTECTED]> wrote: > With some recent PCT-related changes I think we may want to > update the tutorials a bit. > > 1. Remove the custom "List" class. > > ResizablePMCArray now has built-in shift/unshift/push/pop > methods, so we can use it directly from NQP and don't need > to create a custom List class to be able to invoke these > operations. > > 2. Remove :scope attribute from PAST::Var nodes. > > My intent has been that most PAST::Var nodes for simple variables > would not require individual scope attributes; with the changes > I checked into Parrot tonight this should be easier. In Squaak's > case this means that the C<identifier> action method should now > read: > > method identifier($/) { > make PAST::Var.new( :name($name), > :viviself('Undef'), > :node($/) ); > } > > In particular, note that there's no longer a need to > explicitly search outer blocks for the scope -- PCT > will handle this automatically. > > To indicate that all undeclared variables should default > to 'package' scope, we use the C<symbol_defaults> method on > the top-level block. For Squaak, we add the following to its > TOP action method: > > $?BLOCK.symbol_defaults(:scope('package')); > > This says that 'package' scope is to be used for any PAST::Var > node that doesn't have its own :scope and that doesn't have a > scope provided by an outer block's symbol hash. > > > 3. (Bonus problem) Eliminate @?BLOCK > > Since PAST::Var nodes no longer need to search outer blocks > (PCT will handle that), we no longer need to maintain a @?BLOCK > array. So, for bonus points, eliminate @?BLOCK from the Squaak > methods. > > > If I can help explain or demonstrate any of the above, let me know. > Thanks! > > Pm >