mozart/mozart2 — pull request #3 by sjrd (2012-04-13 22:11:08+00:00)
Title: Simplify things with macros

Despite my efforts to provide typesafe, macro-free abstractions for common idioms in the code, I was always chopping on things requiring a `return` in the middle of things.

This pull request offers some macros that solve these problems. Before integrating this into master, I ask you if you consent in putting macros in the VM codebase.

One example. Before:

```c++
nativeint alternatives = 0;
OpResult res = IntegerValue(*args[0]).intValue(vm, &alternatives);
if (!res.isProceed())
return res;
```

After:

```c++
nativeint alternatives = 0;
MOZART_GET_ARG(alternatives, *args[0], u"integer");
```