New in 2014.04

+ Brought thread ops in line with nqp:: op API
+ No longer inherit caller chain when starting a new thread
+ Fix a range of parallel garbage collection bugs
+ Block/unblock threads for GC while sleeping
+ Implement reentrant mutexes
+ Implemented semaphores
+ Implemented concurrent blocking queue support
+ Implement condition variables
+ Main thread has ID 1 now
+ Move nursery corruption check to after inter-thread work passing
+ Fix a gen2roots compaction optimization bug
+ Add flag '--has-sha' option to Configure to use a system SHA-1 library
+ GC orchestration cleanups and extra logging
+ Compact the gen2 overflows list
+ Fix decodestream_bytes_to_buf eating too much data
+ Added some missing MVMROOTs on config setup
+ Removed duplicate gen2 root cleanup call
+ Small cleanups to serialization
+ Avoid an extra level of function call in various REPR allocate functions
+ Add locking for IO handles
+ Add the Configure flags '--has-libuv and '--has-libatomic_ops'
+ Shortcut shr when we have a small lhs but rhs is >= 32
+ Add logic to turn bytecode into SSA form, and from SSA back to bytecode
+ Added infrastructure for "spesh ops", to use in type-specialized bytecode
+ Start interning positional callsites
+ Keep a rough call count per static frame
+ Add bytecdoe specialization infrastructure
+ Optimize simple positoinal arg fetch in specialized bytecode
+ Resolve methods at specialization time when type is known
+ Add a monomorphic method cache
+ If MVM_SPESH_LOG is in env, log spesh work to it
+ Turn known-unrequired decont into set
+ Make MVM_SPESH_DISABLE env var disable spesh
+ Add :pure annotations to side-effect-free ops; eliminate dead code
+ Add a tool for splitting and diffing spesh log output
+ Add setmultispec mechanism for optimizing away only-star proto
+ Optimize optional positoin arguments in bytecode specialization
+ Optimize out istype for a spesh-time-known value or type
+ Optimize if_i and unless_i for known values
+ Corrected atan2 op signature.
+ Implement de-optimization on mixins
+ Don't lose HLL owner during serialization
+ Optimize away hllize when possible
+ Optimize away assertparamcheck when possible
+ Infrastructure to allow REPRs to participate in spesh
+ Optimize object creation in common cases with known types
+ Small fixes to MVM_string_(latin1|windows1252)_encode_substr
+ Optimize bindattr_o on P6opaque when possible.
+ Change the way lexotic is handled to avoid the need for allocation
+ Specialize empty named slurpy args.
+ Add a way to flag a frame as a "thunk".
+ Add ctx[outer|caller]skipthunks ops.
+ Make backtrace generation ignore thunks.
+ When readline/linenoise see EOF, mark handle EOF
+ Set hint for invokespec and multispec, improving invocation performance
+ Improve the VM exit strategy, so non-app-lifetime threads are waited on
+ Correctly handle temp roots stack in callbacks
+ add sched_yield for NetBSD
+ Fix callsite size calculation in tweak_cs
+ Fix buffer overflow in UTF-16 encoding
+ Trigger repossession on OP(push_*)
+ Fake up a final entry off the end of Unicode, fixing some lookup bugs

New in 2014.03

+ Implement a fast-path for string strand flattening
+ Fix character lookup by name sometimes giving wrong result
+ Control and printable now know about Latin-1 control characters
+ Fix bug in Latin-1 handling
+ Fix and optimize various character property lookups
+ Implement lookup of non-boolean Unicode properties
+ Implement character code to name lookup
+ Implement lookup of enum/stringy Unicode properties
+ Fix memory leak of active handlers in continuations
+ Clear up gen2 memory at exit
+ Clear up frame pool at exit
+ Don't leak static frame instruction offsets
+ Fix memory leak in MVMHash
+ Simplified/optimized frame reference count handling in continuations
+ Fixed missing exception resume reference count decrement
+ Correct "on stack" continuation reference count handling
+ Add missing cleanup in MAST assembler
+ Fixed used named args tracking memory leak
+ Fixed SEGV in eof of non-file-based filehandle
+ Pass STDIN to subprocess in shell()
+ Fixed resolution of IPv6 host names
+ Implemented native calling
+ Implemented CPointer representation
+ Implemented CArray representation
+ Implemented CStruct representation
+ Improve GDB plug-in string usage analysis
+ Make GDB plug-in aware of gen2 overflows
+ Clean-up and optimization of many REPR allocate functions
+ Fixed over-eager / to \ conversion in nqp::shell on Windows
+ Implemented native callbacks
+ Correct copy size of args buffer, avoiding reading unmapped memory
+ Updated to new liblinenoise and re-instated usage of it
+ Bump dyncall to latest version
+ Add --has-libtommath option to Configure for using system libtommath

New in 2014.02

+ Increased precision of num => str coercion
+ Mechanism for per-HLL handling of method resolution errors
+ Gave can the same null-check semantics as findmethod
+ Fixed various "not found" lexical lookup semantics
+ Use a more efficient encoding for integers in the serialization blob
+ Implemented reposession conflict resolution handling for objects
+ Optimized GC worklist processing to avoid unrequired barriers
+ Added a GDB plugin to help analyse VM data structures, heap use, etc.
+ Zeroed memory in a few places, to avoid reading junk and quiet Valgrind
+ Simplified and fixed UTF-16 encoding
+ Implemented unsigned native integer array support
+ Added various missing write barriers on STables
+ Added openpipe functionality, to support qx/qqx in Perl 6
+ Corrected accidental and potentially explosive use of REPR(...) on STables
+ Switched to using flag bits to mark liveness in GC
+ GC forwarder pointer used in nursery now overwrites existing object body,
  saving 4 or 8 bytes on every collectable object
+ Added various GC sanity checking asserts to aid debugging
+ Encapsulated all serialization context accesses
+ Defined NDEBUG in optimized builds
+ P6bigint no longer uses libtommath for integers fitting within 32 bits
+ Optimized serialization of P6bigints fitting within 32 bits
+ Implemented link and symlink
+ Fixed mod_n op's behavior on negatives
+ Implemented floating point fallback case of the pow_I op
+ Fixed srand op to also control rand_I
+ Initialize the random seed at startup
+ Properly clean up active handlers that we unwind over
+ Radix parsing now returns an array of integers, not floating point
+ Huge refactor of I/O, fixing many bugs and leading to cleaner code
+ Proper handling of characters split over byte buffer boundaries in I/O
+ Corrected Latin-1 to be Latin-1, and added Windows-1252 encoding
+ Added a constant cache for boxing integers 0 through 15
+ Properly implemented synchronous client and server TCP socket support
+ Better estimate and perhaps shrink string memory for UTF-8 decode
+ Added probing to Configure to learn how the compiler does 'static inline'
+ Switched many macros over to static inline functions
