[racket-dev] BUG: compile: access from an uncertified context to unexported variable from module: "/usr/local/src/racket/collects/racket/contract/private/base.rkt" in: apply-contract

From: Eric Hanchrow (eric.hanchrow at gmail.com)
Date: Sun Nov 7 13:43:35 EST 2010

(Sorry for any duplicaiton; I tried submitting this through DrRacket
but never got a confirmation email)

On Racket v5.0.1.900., Ubuntu 10.10 x86:

Create "stuff.rkt" with this content:

    #! /bin/sh
    #| Hey Emacs, this is -*-scheme-*- code!
    #$Id$
    exec racket -l errortrace --require "$0" --main -- ${1+"$@"}
    |#

    #lang racket
    (require rackunit rackunit/text-ui)

    (require racket/date
             (prefix-in srfi-19- srfi/19))

    (define-test-suite stuff-tests (check-equal? 2 2))

    (provide stuff)
    (define (stuff)
      "Yep, I'm some stuff, all right"
      )

Now create "silly.rkt" with this content:

    #! /bin/sh
    #| Hey Emacs, this is -*-scheme-*- code!
    #$Id$
    exec racket -l errortrace --require "$0" --main -- ${1+"$@"}
    |#

    #lang web-server/insta

    (require "stuff.rkt")

    (define (start request)
      `(html
        (head (title "Stuff"))
        (body
         (p ,(format "Here's some stuff: ~a" (stuff))))))

Make silly.rkt executable, and run it.

You _should_ see a message about "Your servelet is running, look in
your browser", etc.  Instead you see

    ./silly.rkt
    compile: access from an uncertified context to unexported variable
from module: "/usr/local/src/racket/collects/racket/contract/private/base.rkt"
in: apply-contract

Now comment out the "define-test-suite" line in stuff.rkt, and try
again; this time it works.


Posted on the dev mailing list.