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. the forth is case sensitive, and i use only lower case symbols, so making it (partly) ans compliant should pose no real problem. 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. this is changed: you can use ',' and ';' as isolated words in source files. they will be mapped to 'comma' and 'semi' symbols. note that you still can't use these characters as part of a word symbol, because the pd parser always treats them as separators. so 'dada,' is not a valid word, and will be parsed as 'dada ,'. * 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