Two days ago, Danny Yoo wrote: > > For point 1, one possibility would be to record source location and > make it available for the runtime and the contract system. Most of > the interesting Scribble errors happen at runtime, and the lack of > precise location really hurts since the contract checks can't > currently pinpoint the locations of runtime values such as list > elements. #%datum and constructors such as (list ...) for > scribble-based languages might be customized so that these values > remember their source location. That way, the contract system has > the opportunity to report useful locations.
[ This is something that requires some serious design. The thing is that you can have values that come from multiple sources, (define foo 1) (define bar 2) (define blah (+ foo bar)) (string-append "blah = " blah) So it should be a different kind of language where all values are wrapped with source locations, sending a value to a primitive requires unwrapping it, and the result should be rewrapped with the source location for the expression together with the sources of the inputs. ] -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! ____________________ Racket Users list: http://lists.racket-lang.org/users