[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Analyze this!



When I press "Analyze" on a program I'm working on with v199.25d4, I'm
getting a large chunk of a procedure highlighted in red and underlined.  The
output window contains a message which begins as follows:

ast-nodes: 63  graph-nodes: 93  graph-edges: 33
unknown construct: (letrec-values (((generate-investment-dates) (lambda
(last-investment-date) (let-values (((first-investment-date) (#%app (#%top .
date-) last-investment-date (#%app (#%top . get-range-max)
investment-dates-spec))).....{ad infinitum}...

This is a very messy, nested procedure (converted from C++ and not yet fully
Scheme-ified), which returns a handmade object (closure) which supports a
set of messages.  The structure of the procedure goes something like this:

define
  let
    define
      let
    define
      let*
        do
          let
            do
              do
                do
                  let
    lambda
      case
	  ; message handling
      ==> returns closure

Have I just stressed out the analyzer's ability to deal with truly
pathological code?  I don't really need to diagnose this, but I wondered if
perhaps there's some known limitation I might be running into.

Anton