This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
pez /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Thu Jul 23 23:06:19 -0700 2009 | |
| |
INSTALL | Thu Jul 16 11:46:51 -0700 2009 | |
| |
Makefile.am | Sat Oct 31 23:55:43 -0700 2009 | |
| |
Makefile.in | Sun Dec 20 22:23:53 -0800 2009 | |
| |
README | Sat Oct 31 23:55:43 -0700 2009 | |
| |
aclocal.m4 | Sun Dec 20 22:23:53 -0800 2009 | |
| |
autogen.sh | Thu Jul 23 12:59:18 -0700 2009 | |
| |
config.guess | Tue Jul 21 17:18:07 -0700 2009 | |
| |
config.h.in | Sun Dec 20 22:23:53 -0800 2009 | |
| |
config.sub | Tue Jul 21 17:18:07 -0700 2009 | |
| |
configure | Sun Dec 20 22:23:53 -0800 2009 | |
| |
configure.ac | Sat Dec 12 18:17:06 -0800 2009 | |
| |
depcomp | Tue Jul 21 17:18:07 -0700 2009 | |
| |
doc/ | Sat Nov 21 15:45:15 -0800 2009 | |
| |
doccer.rb | Sun Dec 13 06:48:59 -0800 2009 | |
| |
install-sh | Tue Jul 21 17:18:07 -0700 2009 | |
| |
lib/ | Thu Jun 25 13:46:26 -0700 2009 | |
| |
lightning/ | Thu Dec 10 15:04:55 -0800 2009 | |
| |
ltmain.sh | Thu Jul 23 13:50:05 -0700 2009 | |
| |
m4/ | Wed Jul 22 10:37:56 -0700 2009 | |
| |
missing | Tue Jul 21 17:18:07 -0700 2009 | |
| |
pez.c | Sun Dec 20 22:24:17 -0800 2009 | |
| |
pez.h | Sun Dec 20 22:24:17 -0800 2009 | |
| |
pezdef.h | Thu Dec 10 01:33:07 -0800 2009 | |
| |
pezmain.c | Thu Dec 10 21:53:54 -0800 2009 | |
| |
primdeftest.c | Thu Jun 25 13:46:26 -0700 2009 | |
| |
regress.pez | Sun Dec 20 22:24:17 -0800 2009 | |
| |
test/ | Sat Oct 31 16:47:33 -0700 2009 |
README
Pez is a small, lightweight, 100% C (for now), embeddable or standalone, public domain, portable, highly nonstandard dialect of Forth. It was originally based on the Atlast system (see doc/CREDITS for more information), but the feature set has been expanded significantly and there are flagrant breaks with Forth compatibility. The primary goal of the Pez project, much like the goal of the Atlast project, is to bring dead-simple scriptability and dynamism to otherwise static code, with a focus on user-level scripting of applications. There are a number of compile-time options for trimming down and limiting in the case of untrusted input, and also a large number of OS-level facilities both added and planned. Pez is also designed to work well as a stand-alone language for general-purpose coding. And it's designed to be fun. I highly recommend having a look at doc/historic/atlast.pdf, written by Mr. Walker in 1990, especially the introduction which is still shockingly relevant now, about 20 years later. There are a number of benefits to adding user-level scripting to an application. You get a free doman-specific language to expose to users however you see fit. You get a free configuration file parser in the same language as your application's DSL. You get a dynamic internal scripting language a la LUA. You get a safe, plain-text, cross-platform language for communicating between your applications. It can even be used as a complete, full-featured standalone language. And it's lightweight to boot: running on a 64-bit Linux, I'm looking at about 568k of memory for the REPL for a full system. Pez has added to the Atlast system a number of features: * Portability to 64-bit platforms * A Foreign Function Interface, for dynamically loading libraries to interface with system libraries. * More complete access to standard system calls, such as fork(), exec(), etc. * Regular expression support. * Garbage collection. * Numerous small improvements, and more large improvements on the way. See doc/TODO. I certainly hope that you find this codebase to be as useful and as much fun as I have. If you're a Ruby fanatic, by the way, there is also Rupez, which lets you talk to libpez by means of the fantastic RubyFFI. See http://github.com/automatthew/rupez for the code. Pete Elmore







