[racket] Scribble pain-point: itemlist
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!