On 24 Nov 2009, at 16:42, Kassen wrote:
Yes, chout.flush() hangs for a while, and then reports bus error. "\n" seems to flush, but for the VT100 terminal 2D display I mentioned before I want to avoid unnecessary newlines.
Yeah, under the current conditions chout is a bit hard to work with.
As for the VT100 interface, I found that one can return strings. The syntax is chout <= VT100.pos(12, 3) <= VT100.fgbg(VT100.magenta, VT100.yellow) <= "Hello World!\n"; which will set the cursor at (x, y) = (12, 3), foreground color to magenta, and background color to yellow.
At least we caught and pinpointed the issue quite quickly.
But it would be nice to get rid of the "\n". So flush() might come in handy.
It would also be nice if we could try to get OS-independent coloured printing. This would be useful when our program regularly prints notifications but sometimes needs special attention that's not severe enough to be cause for a me.exit() (for example when it doesn't find the expected MIDI device, when running out of voices, when recording, etc).
Right now we can do coloured printing in various ways depending on the OS (with Windows being the odd one out) as this needs system calls. It would be nice if we could abstract the differences away for convenience and compatibility. I feel that anything that depends on the OS of the user that might be needed in normal ChucKage (if such a thing exists...) is a bad thing. Even the Mac-only graphical interface elements lead to confusion in new users on the forum. On top of that system calls are expensive.
Since it is an emulation of a VT100 terminal, it will be OS independent - one needs a console that emulates it. The standard is here: http://www.xfree86.org/current/ctlseqs.html But it is just a hack, not a replacement for more advanced solutions like miniAudicle. Hans