Bug fix: actually this was a bug in the language definition, I have changed keywords like "local" and "global" and "static" to no longer be keywords but built-in functions, but you must write global variables as, for example, "global(var.name) = 0;" and not "global var.name = 0;" because the later will parse as an expression equivalent to "global(var.name = 0);" This is counter-intuitive to people coming from a C language tradition, but the alternative was to make keywords like "global" and "local" have higher precedence than assignment and arithmetic operators, but lower precedence than the . or -> operators, which will be very difficult to implement. It is easier to mandate parentheses.
In the previous commit I added targets for profiled builds of the "dao" and "debug/test" programs, called "dao-prof" and "debug/test-prof" respectively. In this commit, I remove the -feager-blackholing flag which I had added to the "debug/test" but it seems to exacerbate the space leak problem.
Instantiated every data type used throughout the Dao interpreter into the 'Control.DeepSeq.DeepSeq' class.
I am hoping apply 'Control.DeepSeq.deepseq' to objects in the test program will help eliminate space leaks and improve performance. So far it seems to work better with strict evaluation in the test thread.