import boost-1.55
boost: spsc_queue - merge fixes from boost trunk
lang: Fix memory corruption bug introduced in commit ac613331d5062bcd1aebc25e03c7f321296c4110

- shifts from pre to post increment/decrement created a subtle bug

Signed-off-by: Scott Wilson <i@scottwilson.ca>
Classlib: Object:render now uses a sensible path for OSC score files
Classlib: Score now throws intelligible errors for write failures
Classlib: Score:recordNRT allows nil as OSC file path (creates a default)
Classlib: Score and render: Fix typos (inadvertently left % in strings)
Help: Fix envelope handling in a pattern-cookbook example
Merge pull request #1061 from jamshark70/topic/fixPatternCookbook1

Help: Fix envelope handling in a pattern-cookbook example
examples: fix final quine
Merge pull request #1060 from jamshark70/topic/fixNRTpath

Fix NRT file paths
Merge pull request #1054 from supercollider/fix-corruption

lang: Fix memory corruption bug introduced in commit ac613331d5062bcd1ae...
class library: Pfx causes cleanup function to be called only once

For some reason, adding the parent to the note off event in Pfx caused the cleanup function to be called twice. It seems enough to simply move the cleanup event creation to the moment after the fx node event has been returned.

This commit fixes #220
class library: add cleanup arg and reset method to EmbedOnce stream.
class library: jitlib-patterns: refactoring: pattern proxies should behave more like their source pattern

In the pattern system, the role of a non-pattern object is ambiguous: in some cases, when used as an input of a pattern, it will return itself endlessly (e.g. in a Pbind value). In other cases (e.g. as an element of a Pseq list), they are used only once and give way to the next element. Pattern proxies should actually behave the same dependent on their input. This means that asStream and embedInStream have to be implemented slightly differently. A new method "streamArg" is responsible for this.

Pattern proxies should actually behave the same dependent on their input. This means that asStream and embedInStream have to be implemented slightly differently: all pattern proxies now behave to asStream and embedInStream like their respective source objects. E.g. Pdefn(\x, 800); Pbindef(\freq, Pdefn(\x)) will loop 800, while Pseq([Pdefn(\x), 900]) will return first 800, then 900.

One minor change: pass node proxy to event when playing event stream
class library: jitlib: fix bug in recursive embedding of cleanups. This fixes #107.
class library: patterns: call streamArg on arguments of Pcollect patterns. This fixes #1047
help: add documentation for streamArg method
class library: jitlib-patterns: remove comment line
class library: protect EnvGate when released too early
This is a temporary precaustion, see discussion about #700.