I've got it this time:

The test file with the module+ must be required by another, not even necessarily saved file (untitled # is fine). It seems the tests are being run therefore in the *other* file, yet displayed in the current file's repl.

e.g.

in a.rkt:

#lang racket
(module+ test
  (write "?"))

save, then open new tab

#lang racket
(require "a.rkt")

go back to a.rkt, comment out, and it will print. It may or may not print after depending on exactly which order of save/ctrl+r/commenting/etc. and I'm not sure what happens in general.

On 06/22/2013 03:30 PM, Robby Findler wrote:
Oh, maybe memory got corrupted somehow earlier along the line.

Just in case it is relevant: DrRacket tries hard to protect itself against buggy user programs, but it cannot do that when #%foreign is being used (unsafely).

Robby



On Sat, Jun 22, 2013 at 2:25 PM, Sean Kanaley <skana...@gmail.com <mailto:skana...@gmail.com>> wrote:

    I myself can no longer reproduce it after closing and reopening
    DrRacket. By coincidence, before closing it, the menus stopped
    working and I got a Ubuntu error of some sort as well.  I shall
    keep trying for a bit.


    On 06/22/2013 03:12 PM, Robby Findler wrote:
    I'm not seeing that behavior (that is a bug, tho). I tried these
    steps:

    1) cmd-t to create a new tab in DrRacket.
    2) paste the expression above (there is an automatic "#lang
    racket" inserted).
    3) save the file.
    4) delete the above expression
    5) hit run.

    No output observed.

    Were you doing something differently?

    Robby


    On Sat, Jun 22, 2013 at 2:02 PM, Sean Kanaley <skana...@gmail.com
    <mailto:skana...@gmail.com>> wrote:

        I don't use modules very much, so this could be the defined
        behavior similar to how the ffi module "secretly" (it's
        actually documented) doesn't reload foreign libraries unless
        DrRacket is restarted, but I didn't notice anything in the
        documentation.  How to reproduce:

        (module+ test
          (write "?"))

        Without even running it, save the file, then delete that
        expression.  Now run it (as in ctrl+r), and it will write "?".
        ____________________
         Racket Users list:
        http://lists.racket-lang.org/users





____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to