[racket] Scribble pain-point: itemlist

From: Eli Barzilay (eli at barzilay.org)
Date: Wed Jul 11 07:44:00 EDT 2012

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!

Posted on the users mailing list.