[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.