max website and code updates

Tril tril@tunes.org
Sun, 19 Oct 2003 01:51:44 -0700


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I updated the website today, http://max.tunes.org/.  There's a better
description of what the project is, plus I threw the documentation on
there.  And a CVS snapshot.

I haven't said anything about the code for a while; new stuff is
mainly a Read-Eval-Print Loop and you can do things like:

LISP> (repl)
Max> ((add ((add (emptyset boolean)) true)) false)
Then choose the enumerated type from the menu two times, and you'll
get a set containing the Max boolean values TRUE and FALSE.

Type (names) in the REPL to get the names relation, which associates
objects with names.  Use (domain funcname) and (codomain funcname) to
find out what argument and return types a function has, then try
calling it.  Strings in double-quotes evaluate to Max strings, and
symbols evaluate to lookups in tne names relation.  The menu you see
is caused when looking up the symbol TRUE and FALSE in the names
relation there are multiple objects associated with the names.  So the
evaluator asks you which one you want.

Functions are in the first position like LISP and arguments are
marshalled up into Max product types.  In the above example, the ADD
function takes a set as its only argument, returns a function taking
the type of object that can be stored in the set, which when called
will return a new set with an object added.

Don't get too attached to names, and don't worry about their
non-uniqueness.  I'm not intending to standardize on names at all, to
discourage text-based programming.

There's probably bugs in some of these functions, but you have to be
rather careful if you think you found a bug, since the REPL has no
type-checking it's also likely you just passed the wrong Max type to a
builtin Max function and confused the function's LISP implementation
which was written assuming types are checked.  Type checking is for
data-flow (eval.nw).

So overall the REPL is kind of nice to see the current status of Max.
It's not meant as a final interface to evaluation.

That's all I'm going to say unless somebody has specific questions!
I'd be glad to clarify; let me know if stuff is really baffling you.
As usual I'm mum on future development, to prevent vapor, and because
I'm often not really sure what's next, or if something will work.

- -- 
Tril 0. Byte <tril@tunes.org> http://tril.tunes.org/ 
PGP key fingerprint: DADB ED32 6E54 80D0 7E69  7549 C3A3 446F CAA4 66C0
This message is placed in the public domain.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/klCgw6NEb8qkZsARAshaAJ9ZWH9Edj2xFDnw1tGJ0BGWxqTZWQCfdsue
hqUWKEH8lXuJgAYgzDeWFho=
=j0qw
-----END PGP SIGNATURE-----