nosetests/hal_streamring.py
hal/cython: shmcommon API support
tutorial/protobuf: polyline message example

this shows how to:

- generate a message in Python, and serialize to wire format, JSON and the
standard Protobuf Text Format

- parse a message in C++ from wire format, JSON or Protobuf Text Format

- parse a message in C from wire format, using nanopb - this is realtime-
compatible
tutorial/zeromq: publish/subscribe examples

run the basic demo as:
window 1:  python publish-basic.py foo bar baz
window 2:  python subscribe-basic foo

run the demo with subscriber notificaton:
window 1:  python publish-xpub.py foo bar baz
window 2:  python subscribe-xsub.py foo

no argument on subscribe-*py will subscribe to all topics.
tutorial/zeromq: request/reply examples

shows proper routing.
window 1: python server-reply.py
window 2..n: python client-request.py
tutorial/ringbuffers: basic Python single-frame demo

realtime needs to be running.
tutorial/ringbuffers: multiframe ring demo

realtime needs to be running.
tutorial/ringbuffers: stream  ring demo

realtime needs to be running.
tutorial/json-ws: the full path: json/websockets to RT and back
build/install dependencies: add scripts/apt-installbuilddeps

use like so:
first, add package repos:

sudo sh -c "echo '# Machinekit package archive tracking the master branch\n# From the Dovetail Automata LLC Buildbot\ndeb http://deb.dovetail-automata.com wheezy main\ndeb-src http://deb.dovetail-automata.com wheezy main' >> /etc/apt/sources.list.d/machinekit.list"
sudo sh -c "echo '# Machinekit needs a recent cython from wheezy-backports:\ndeb http://ftp.us.debian.org/debian wheezy-backports main' >> /etc/apt/sources.list.d/wheezy-backports.list"

sudo apt-get update

debian/configure <options> (typically -r -p -x)
sudo scripts/apt-installbuilddeps

this should pull in all dependencies for the flavors required.

apt-installbuilddeps was lifted from: https://vcs.maemo.org/svn/sardine/trunk/apt-installbuilddeps
rtapi/heap: shared memory malloc/free support
rtapi/msgd: add global heap to global segment

eventually this should be size-configurable with a startup option
rtapi/heap: build support in rtapi/Submakefile
rtapi/heap: build support in hal/lib/Submakefile

the heap routines do not go through rtapi_switch since technically
they work with any memory region; the global heap needs the global segment
though and will work only after hal_init() when used from the HAL library.

Also, fix useless profiling definitions.
rtapi/heap: build support in src/Submakefile

make the includes available.
rtapi/heap: demo component using rtapi_malloc/free from RT
src/Makefile: drop -Os, fix profiling

known to tickle gcc bugs, and of dubious value
emc/sai: dummy canon layer nullcanon.cc - for interpreter profiling

to cut out any canon overhead from profiling and timing, and measure
interpreter parsing speed only

to build the standalone interpreter (rs274) with dummycanon, do like so:

rm ../bin/rs274
make ../bin/rs274 USE_NULLCANON=1

to profile the interpreter, install gperftools:

   apt-get install libgoogle-perftools-dev google-perftools

Note this works without profiling compile flags like -pg.
While old Makefile flags&options suggested to use gprof, this is
completely useless because gprof does not work for shared libraries
and the interpreter is in fact loaded from a shared library (librs274.so).

To profile:

CPUPROFILE=rs274.prof LD_PRELOAD=/usr/lib/libprofiler.so ../bin/rs274 -g <ngcfile>

To analyze:

google-pprof --text ../bin/rs274 rs274.prof |less
 or
google-pprof --cum --text ../bin/rs274 rs274.prof |less
json2pb: track commit d08c7fd5 in https://github.com/shramov/json2pb

fixes Memory leak in json -> pb conversion
tutorial: motorctrl demo