[racket-dev] #f instead of path-string? when (require cKanren)

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Oct 4 19:28:21 EDT 2014

I'm not able to reproduce this bug, but it appears that the value of
the current-load/use-compiled parameter is being passed #f for a first
argument.

The code in DrRacket seems to assume that things like this will raise errors:

  (parameterize ([current-load/use-compiled void])
((current-load/use-compiled) #f #f))

but I see they don't so it seems entirely plausible that something is
passing #f in there when it shouldn't be somewhere. I think one might
reasonably consider the missing check to be a bug in racket, but I'm
not sure how easy it is to fix.

Also unfortunately, there is potentially a lot going on in between the
drracket/private/rep.rkt step in the stacktrace and the
drracket\private\eval-helpers.rkt step so I'm a bit stuck right now.

Robby

On Thu, Oct 2, 2014 at 11:05 AM, A.J. Lepper <angus.lepper at gmail.com> wrote:
> Windows 64-bit, Racket v6.1 64-bit
>
> If I install cKanren from the package manager then (require cKanren) works
> fine in Racket.exe from the command prompt, but produces an error in
> DrRacket. simple-form-path receives #f instead of a path-string?, from
> file-stamp-in-paths. Adding a [(false? (car paths)) #f] clause to the outer
> cond stops the error, but may not be a good fix - I got a bit lost digging
> through the stack above it and went for the easy option. I've attached the
> backtrace.
>
> Thanks very much,
> -Angus.
>
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev
>

Posted on the dev mailing list.