brace () http://sam.nipl.net/brace/ )c( by Sam Watkins 2000-2009, public domain Brace is a dialect of C which looks like python. It has two types of coroutines, hygienic macros, header generation, graphics and sound. Brace is developed mainly on Debian GNU/Linux, but also works on at least FreeBSD, NetBSD and Open Solaris with X11, and on MS Windows with MinGW+msys. It should also work on OS X with X11, but I have not tested this yet. It has been built on GNU Hurd and OpenBSD in the past. The Windows version is almost as good as the *nix version. Brace 1 (coming soon!) will have binary packages for these platforms. Brace 2 will be renamed CZ, when I finish rewriting the translator. It will build and run with gcc or tcc; it will not use sh, perl or make. Dependencies Brace depends on gcc, GNU make and libpng (which needs zlib). On GNU/Linux/Unix, it depends on libx11 and libxext (on windows it uses GL). On Debian: apt-get install build-essential devscripts fakeroot debhelper \ libx11-dev libxext-dev libio-string-perl libpng12-dev On RedHat: yum install libX11-devel libXext-devel perl-IO-String libpng-devel On *BSD: use pkg_add / pkgsrc to install dependencies. FIXME list here! On MS Windows, get msysgit (fullinstall), which includes MinGW+msys etc, and get libpng, zlib from the GNUWin32 project, the bin and lib pkgs. It hear it does not build on Mac OS X yet. If you try you will need X11. Building and Installing ./configure && make && sudo make install # or gmake # ./configure && gmake && sudo gmake install # on *bsd etc # ./configure --prefix=/usr/local # default # debuild -i -b -us -uc ; sudo dpkg -i ../brace*.deb # on Debian Examples WARNING - to exit full-screen example programs, press 'q' (was Escape). There are examples in eg/ and two slideshows about CZ with pretty demos: cd eg ./hello ./hello.bb ./star ./lattice ./show slides1.txt cd yukon ; ./yukon Some of the examples might not be in working order at any given time! Most of them do work on both *nix and MS Windows. There are many small examples with animated graphics. My webserver tachyon is written in brace: http://sam.nipl.net/code/tachyon The brace library libb is written in brace: brace/lib Documentation There is almost no documentation yet. Have a look at eg/slides1.txt, the examples, the generated .bh files which are installed in /usr/local/include or similar, and perhaps the library source code in brace/lib. If you would like to read some tutorial or documentation for Brace, please let me know and I will write something. Contact Please contact the author! Sam Watkins http://sam.nipl.net/contact.html http://sam.nipl.net/