# (fooi "{\\al" "[$L" "{\\hlist" "[$hlist" "}" "]") procj PFL1 {shortfname txt} { if {$txt==""} {set txt $shortfname} MYL PFORTH/$shortfname $txt } htmlize {Edrx's Forth links} { [P (Maybe you're looking for [HREF luaforth.html my page about Lua and Forth]? As of sep/2005, the rest of this page is several years old... Sorry!)] [HLIST1 {Some ColorForth links:} [LR http://www.users.qwest.net/~loveall/c4index.htm] [LR http://pringle.sphosting.com/clrcode.html] [LR http://pringle.sphosting.com/flux.html] [LR http://www.ultratechnology.com/ahasrc.htm] [LR http://www.ultratechnology.com/mfp21.htm] [LR http://www.users.qwest.net/~loveall/] [ES {fortho c4th} My e-scripts on David Loveall's c4th] ] [HLIST1 {Pages:} [LR http://www.softsynth.com/pforth/ PForth] [IFL J [L /usr/doc/pforth/docs/ Local PForth docs]] [J [LR http://www.ultratechnology.com/ Jeff Fox / UltraTechnology] (temporarily at [LR http://www.value.net/~ut/])] [LR http://www.ultratechnology.com/p21intro.html Introduction to P21Forth] [LR http://www.forthchip.com/] [IFL L http://www.value.net/~ut/forth.htm ] [J Forths in assembler for i386 Linux: [L http://www.boswa.com/misc/ perpol and easynasm] ([ES {fortho perpol} escripts]), [L http://fare.tunes.org/files/asm/linux-eforth-1.0e.tar.gz eForth] ([ES {fortho eforth} escripts]) ] [LR http://www.forthchip.com/] [L http://mini.net/pub/ts2/minotaur.html Minotaur - using Forth to glue Tcl, Perl, Lua and other languages] [ES {forth ts2} my e-scripts on compiling Minotaur] [L http://www.dnai.com/~jfox/color4th.html Color Forth] [L http://www.complang.tuwien.ac.at/forth/forl.html Forth Online Resources List] [L http://mips.complang.tuwien.ac.at/projects/forth.html Forth Research at Institut fur Computersprachen] [L http://grail.cba.csuohio.edu/~somos/forth.html Forth WWW and FTP Links] [L http://www.complang.tuwien.ac.at/forth/dpans-html/dpansf.htm x3j14 (words)] [L http://www.jwdt.com/~paysan/index.html Bernd Paysan (bigForth/Minos) home page] [L http://www.geocities.com/Athens/Agora/7256/mind-fpc.html Project Mentifex] [L http://www.eleves.ens.fr/home/rideau/Tunes/index.html the Tunes project] [L http://www.eleves.ens.fr/home/rideau/Tunes/Review/Languages.html Tunes: Review of existing Languages] [L http://www.forth.org/index.html Forth.org (Taygeta)] [L http://www.forth.org/fig.html FIG] [L http://www.taygeta.com/skip.html Taygeta] [L http://www.forth.com/index.html Forth, Inc.] [L http://www.complang.tuwien.ac.at/projects/forth.html Anton Ertl] [L http://www.iaehv.nl/users/mhx/ Marcel Hendrix] [L http://www.iaehv.nl/users/mhx/i4faq.html iForth FAQ] [L http://playground.sun.com/pub/1275/home.html Open Firmware] [L http://www.taygeta.com/skip.html Skip Carter (Taygeta)] [L http://victoria.tc.ca/~uj797/aisource.html Source Code of Mind.forth AI] [L http://www.tefbbs.com/spacetime/index.htm Space-Time Productions - Design Your Own Processor - Real Time Controls - Hardware/Software - Stack Processors] [LR http://isforth.sourceforge.net/] ] [H2 Some of my projects:] [HLIST1 {Crim1:} [J [BF Important! Important!] The new implementation, that uses Tcl and Nasm to do the dirty work, is in [MYL CRIM1/ this directory]\; it uses some ideas taken from [L http://www.boswa.com/misc/ perpol and easynasm]. It will be publicly released as soon as the [AL CRIM1/tclstuff2 new rewrite] gets done and I can write the rest of the docs.] [J [BF Even more important:] there's a more recent implementation, written in Lua+C+Nasm. See my [MYL lua.html Lua page].] [HLIST2 {Crim1 had a prototype in 1995 that was too primitive and too difficult to use, but its docs may be interesting to some people:} [MYL crim1.html] [ES {forth crim1_on_pfe} putting it to run (on PFE)] ] ] [HLIST1 {Crim2:} [J Crim1+regexp engine=Crim2. But no public docs yet...] ] [HLIST1 [BF Project Forth Everywhere:]] [P [IT (Update: the PForth implementation part is sleeping while the rest of the project mutates into the Crims\; see above.)]] [P The goal of this project is to have a Forth system for Unix that is powerful, free, and fun to learn and to use. \"Fun to learn\" implies (or almost) that by learning it one also learns lots of useful things, not only the intrincacies of C, assembly and of the design of one particular Forth\; \"powerful\" implies that it should have many of the features found in other languages or programs.] [P I think that the best way to accomplish this is to write just the code needed to \"glue\" certain other packages. This will be quick, as there will be little new code to write\; relatively bug-free, as most of the code we'll be using was already debugged by their authors\; interesting, because it will unveil many tricks about coding and debugging under Unix, and of the low-level interfaces of some programs -- things are often bragged to be easy, but that we all know that are not. And we may even get some support from the people who wrote the programs we'll be glueing...] [P In the spirit of [L eev-manifesto.html Project eev], I'm documenting most of the steps taken to reach the present state of the project. The documentation starts very messy, of course, because it is just a record of the steps I took, written in more or less executable language, but it can easily be cleaned up if someone asks to. And the code is [IT very] small, so it should be really easy to understand: I'm using [L mktclapp.html mktclapp] to glue [L http://www.softsynth.com/pforth/ PForth] and [L tcltk.html Tcl]\; I'm packing mktclapp for [L debian.html Debian], and I tried to add to the package exactly the docs (for example, this [A0L mktclapp-3.9/examples/README README]) that would have made me start playing with it quicker.] [P At this moment I'm working only on the Tcl[Q <->]PForth connection. Right now Tcl can call PForth, and PForth can return numbers and strings, but PForth cannot yet execute Tcl code. A medium-term project is to link Tcl and PForth with [L icon.html Icon], that was my favorite language for many years\; longer-term projects include linking to GDB and to TeX, and, in directions orthogonal to these, I'm planning to:] [LIST1 [J implement a Crim1 bytecode interpreter on PForth, letting it access directly most of PForth's functions that are written in C,] [J implement [L http://www.ultratechnology.com/ F21/F32] bytecode interpreters, with some extensions to make them convenient and fast on typical Linux machines (but I admit that have only some vague ideas about that)\; I'd like also to get closer to have F21/F32 emulators for [L http://mess.emuverse.com/ MESS], but if we could get an \"emulator\" that could easily call standard Linux kernel calls/glibc functions then we could get a lot of Unix people to play with it and to dream with F21/F32 motherboards.] [J implement Crim2-style parsers on top of a Crim1-modified PForth, using Tcl/Tk to display the 2D diagrams... but, sorry, I haven't written down anything on Crim2, so you'd better not take this too seriously.] ] [P One further note: I'm working on this with an [IT extremely] tight budget, and only on my (scarce) spare time... so I'm having to make things fit my current hardware and OS: a pentium Debian GNU Linux box, that will soon also run Debian GNU Hurd. I don't have the resources, in [IT any] sense, to play with Windows or other non-free/non-shareable stuff, and also don't have enough practice in dosemu and FPC to be able to play seriously with the existing F21 emulators (JFox's). Also, I can't play with hardware, I don't have any sort of electronic lab, etc, etc, and I know that people only very rarely engage on other people's projects by the net (hey, you! [ML eduardoochs@gmail.com Change that!] :-)... but I'm fascinated with Jfox's/Chuck Moore's ideas, and I've had a [IT very] good time playing with HS-Forth at the end of my MS-DOS days. Well, let's see.]
[P [BF The code for the Tcl[Q <->]PForth connection:] at this moment it consists of [PFL tclpforth.c], [PFL tclpforth.tcl], [PFL mtamacros.h] and [PFL Makefile this makefile], all called from [ES {forth pforth_and_tcl} this e-script]\; we also need [PFL tclpf_custom.c] for the PForth primitives that return values to Tcl, and [PFL tclpf_hook.c] to build the temporary PForth standalone that is used to generate the dictionary with the new primitives.] [P See also the [L http://mini.net/pub/ts2/minotaur.html Minotaur] page for a project that was somewhat related to mine. It seems to be dead.] [P [BF Help!:] people on the net are generally either clickers or people trained in conventional languages, so they tend to measure the value of a program by the number of lines of code it has (\"wow, this guy should have suffered a lot to write this, he's certainly a serious professional\"), so the eev project have had very little acceptance at the main divulgation channels, and this glue-Forth thing will certainly have infinitely less, no matter how far I go. So, please, if you like some of my stuff give me a link on your page, or, better yet, [ML eduardoochs@gmail.com join, or get in touch].] } # [AL crim/index.html # index.html] # [AL crim/1-autod.4th.txt # 1-autod.4th.txt] # [AL crim/1.4th.txt # 1.4th.txt] # [AL crim/1.aud.txt # 1.aud.txt] # [AL crim/2-autod.4th.txt # 2-autod.4th.txt] # [AL crim/2.4th.txt # 2.4th.txt] # [AL crim/2.aud.txt # 2.aud.txt] # [AL crim/ETC.txt # ETC.txt] # [AL crim/announce.txt # announce.txt] # [AL crim/autodoc.4th.txt # autodoc.4th.txt] # [AL crim/crim.c.txt # crim.c.txt] # [AL crim/crimcomp.4th.txt # crimcomp.4th.txt] # [AL crim/letter.txt # letter.txt] # [AL crim/patchpfe.txt # patchpfe.txt] # [P [BF Status:] I can call PForth from inside Tcl\; I haven't # written the code to exchange data between Forth and Tcl, to eval Tcl # code from Forth or to eval Forth code from Tcl without the need of # an intermediate file. [BF The stuff:] [ES {forth pforth_and_tcl} # this e-script], [AL PFORTH/tclpforth.c tclpforth.c], [AL # PFORTH/mtamacros.h mtamacros.h] and [AL PFORTH/Makefile this # makefile]\; it is only glue code, so it is very small. [BF The # future:] I want to turn this into a general debugging tool, callable # from any C program and having access to the program's variables and # functions, just like GDB. [BF Mini Schedule:] march 2000, full Tcl[Q # <->]Forth interface\; mid-2001, Icon[Q <->]Forth interface\; late # 2002, Forth embedded in GDB\; late 2004, TeX with a primitive to # call an interactive Forth debugging system\; mid-2005, TeX with # primitives to eval lists of tokens as Forth.] # [P See also: , my [L mktclapp.html mktclapp page] and my [L # debian.html Debian page].]