mole - m.ost o.ranges l.eft e.xtracted mole is a small and efficient forth tailored to pd. written from scratch for optimal pd-integration. * direct threading inner interpreter, running independent of c stack * outer interpreter reads atoms (pd messages or textfiles) * output through pd messages (to outlet or receive symbol) * float, int, symbol and list pd type support * pd timer, array and dsp support * pd object creation / destruction support it's not a standard (ANS) forth. but most things that i couldn't figure out how to do different are modeled after gforth. many thanks to Brad Rodriguez for his excellent series "MOVING FORTH" which can be found at http://www.zetetics.com/bj/papers/moving1.htm licence this project is free software covered under the GNU Public Licence version 2. see the file COPYING for more details. building & installing ./configure && make && make install gcc-2.95 produces slightly faster code than gcc-3.x. if you have it installed, you can use it by invoking configure like: CC=gcc-2.95 ./configure mole can be loaded as an extern, or a library (with -lib / -path) if you load it as a library, make sure the .mole files are in the pd path. documentation none! but if you're crazy enough to download this package, knowing it's a forth and all, i doubt you will have trouble to find your own way. the examples are messy, but could at least serve as a starting point. it's small, it's commented.. if you want to figure out what a particular word does, look in kernel.mole and mole.c to find your answer. there is code for queues, stacks, arrays, tasks, coroutines, ... most examples use creb, available at http://zwizwa.fartit.com/pd/ in any case, i am available for questions at in fact, if you use this thing, send me a note anyway. :)) tips & tricks * don't use ',' in your source files. too bad this beloved word is not available due to its special meaning in pd. use 'comma' instead. * the ';' symbol represents end-of-line, which implies end-of-definition. * the console.py script is a readline-enabled console, which can be connected to every (non-locked) mole object. it uses the pd protocol so you can connect to it using netreceive. * if you use emacs, you can use the gforth editing mode. history this project originated as a test case for (yet another) redesign of pdp's scripting language. pdp is quite different, but, i assure you, this is a 'real forth'. 0 0 ! enjoy, tom