The compiler itself is under the GPLv2+; the support code that gets built into
user programs is under the LGPLv2+. This matches the existing practice for the
KRoC project.
(As with Occade, I've used the new GPLv3-style license header in the source
files, though, since that avoids having to update the FSF's postal address.)
C++CSP backend has been added. It consists of a support header file and one new Haskell module: GenerateCPPCSP
The module is largely based on GenerateC, changed as needed.
There is a large section at the bottom of the file with verbatim copy-and-paste from GenerateC,
due to wanting the same functionality, but for calls to use my C++CSP generation not the C generation --
hence I cannot simply import those functions.
The backend can generate code for cgtests 0 through 16 (incl) that will compile as valid C++. The majority of the
tests pass when run (some do segfault, admittedly). However some arrays still need more testing/work, particularly:
- timers
- array slices
- retyping
The tock_support_cppcsp.h header makes use of tock_support.h, but I had to add a few #ifnders to the latter
file so that I can use it with C++CSP and block out some of the CIF stuff.