[metapost] ANN: METAppeal 0.0.0 (really!)

Nicola nvitacolonna at gmail.com
Mon Mar 28 23:14:36 CEST 2011


METAppeal is a MetaPost library in its very early stage of development (as you 
may guess from the version number). I have decided to release the code to get 
feedback and stimulate discussions.

First of all, let me say what it provides right now:

   - a simple unit testing framework for MetaPost;
   - basic facilities for defining and declaring your own “data types”;
   - basic facilities to implement parametrised code blocks;
   - a few very simple data structures (records, memory pools, arrays, stacks, 
queues, lists, trees);
   - a “metappealing” version of John Hobby's boxes package.

Therefore, it is not a library for end users (yet), but it may be interesting 
for library developers or anyone who has a good knowledge of MetaPost. To be 
clear, there is nearly nothing directly related to drawing at this time.

The code is available for download at

http://users.dimi.uniud.it/~nicola.vitacolonna/home/content/metappeal

Motivation:

To my knowledge, MetaPost is the only language supporting these three features:

(1) it is a “real” (graphical) programming language;
(2) it is strictly related to TeX (think of ConTeXt);
(3) it has a declarative mechanism for solving equations.

For comparison, PSTricks or Tikz have (2), and Asymptote has (1) and (2). (3) 
may be actually seen as the defining feature of MetaPost (and the one I like 
most). Other languages, however, have a well-developed set of graphical 
components. There are also a lot of MetaPost extensions, of course, but each one 
with its own (sometimes obscure) syntax, some with special purposes (e.g., 
GrafBase and MetaFun), and many of them barely documented. So, METAppeal is an 
(ambitious) idea that was born out of the wish for a more organized, coherent, 
integrated, graphical library of MetaPost extensions. So far, this is still a 
wish, but at least I hope you'll find some of the current code interesting.

Nicola



More information about the metapost mailing list