puppetlabs/puppet — pull request #2525 by zaphod42 (2014-04-10 14:02:58+00:00)
Title: (PUP-1942) Initial pass at a global scope

The new Puppet::Pops::Evaluator::Scopes class is a facade over the various
scope types that will exist. The idea is that the scopes themselves will
be very dumb and fast, whereas the scopes class will contain extra checks
and convienence methods.

This is an very simplistic first pass and a global scope. that can set and
lookup values. Right now there isn't much to it, but it should grow over
time as the invariants and preconditions are discovered.

To use this implementation create a file `test.pp` that contains

````
$a = 1
notice($a)
````

And then run it with `puppet apply test.pp --parser future --catalog_terminus biff`.

The `biff` catalog terminus was created as the starting point for the rest of
the new evaluator and catalog builder (Biff) functionality to be pulled
together.