Hi Anton,

I almost did, see the DEFAULT2 function I posted some time ago :-). But,
seriously:

1) we are unable to handle crashes

2) we are unable to catch some errors (especially throw-errors)

3) do/next cannot handle cases like:

    do/next [
        do [
            lots-of-code-here
        ]
    ]

with sufficient granularity.

4) it would really be better to traverse the interpreter stack:

    a: func [x] [1 / x]  a 0
** Math Error: Attempt to divide by zero
** Where: a
** Near: 1 / x

I would prefer the message to be:

** Math Error: Attempt to divide by zero
** Near: 1 / x
** Where: a 0

Another (more complicated) example:

    a: func [f x] [f x] a func [x] [1 / x] 0
** Math Error: Attempt to divide by zero
** Where: f
** Near: 1 / x

Similarly as above, the two-level message I prefer would be:

** Math Error: Attempt to divide by zero
** Near: 1 / x
** Where: f x

, but a three-level message:

** Math Error: Attempt to divide by zero
** Near: 1 / x
** Where: f x
** Where: a func [x] [1 / x] 0

would be more helpful in this case.

Cheers
-L

----- Original Message -----
From: "Anton"

We could probably make our own "line by line",
or expression-by-expression interpreter.
Check out do/next.

Anton.

> Unless I'm way off, REBOL has a stack-based architecture to it - could we
> not have a Smalltalk-like walkback window that shows the call
> sequence, and
> what lines each call is related to (where they are related)?
>
> Clicking on a line item shows the context/state of all relevant store at
> that point. Very handy.
>
> Kemp


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to