[racket] Recent GIT HEAD Breakage On Linux

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Mon May 14 09:00:36 EDT 2012

Oh, yse. I'm seeing that too. Thanks! DrRacket now protects itself
against this specific problem by catching errors during creation of
the sanbox and just giving up on looking at the language.

I made an example at the end of this message show what appears to be a
problem with the sandbox.

I'm not sure, but based on past experience, I think Eli will say it is
the intended behavior. (It seems a bit unfortunate, tho, that creating
an environment to do a protected form of evaluation can fail outside
of the environment instead of inside of it. After all, isn't that kind
of the point of the sandbox, to handle such things for me in the
library?)

Robby

I created a raco link -d with a directory that does not contain a
'racket' subdirectory.

[robby at yanpu] ~/git/plt/collects/drracket/private$ raco link -l
User links:
 root  path: "/Users/robby/unison/collects"
Installation links:

Then it isn't hard to get this error:

[robby at yanpu] ~/git/plt/collects/drracket/private$ racket
Welcome to Racket v5.3.0.7.
> (require racket/sandbox)
> (make-evaluator 'racket/base)
directory-exists?: `exists' access denied for
/Users/robby/unison/collects/racket

 === context ===
cloop
standard-module-name-resolver
/Users/robby/git/plt/collects/racket/private/namespace.rkt:26:2:
make-base-namespace
/Users/robby/git/plt/collects/racket/sandbox.rkt:430:0:
make-evaluation-namespace
/Users/robby/git/plt/collects/racket/sandbox.rkt:672:0: make-evaluator*
/Users/robby/git/plt/collects/racket/private/misc.rkt:87:7


On Mon, May 14, 2012 at 7:40 AM, Ray Racine <ray.racine at gmail.com> wrote:
> I was just tossing it out in case it tickled someone's memory regarding a
> recent commit.
>
> Just last night I think I stumbled onto the problem, but as yet have not
> confirmed it.  I purchased a new laptop on Friday and DrRacket, built from
> source, worked perfectly, so I assumed it was detritus build up on my old
> Fedora server box as the new laptop is Ubuntu 12.04.  An then lo' and behold
> the problem started to manifest itself on Sat. when building Racket on the
> laptop.
>
> I _think_ the issue happens when raco link -d is used to add a new
> collection and then Racket is built from source.  During the build process
> of Racket, looking carefully one where small failures are occurring with the
> build looking for mred, and racket sub-dirs the raco link(ed) collection
> root.
>
> When the build completes Racket runs fine except for the DrRacket REPL borks
> when you type anything into it.  The message is something along the lines of
> "mred failed... no permission to check for `exists?` on directory
> /my/raco/linked/collection/root/mred".
>
> If I remove the raco link to my personal collection, then build Racket and
> then subsequently re-add the collection _after_ building Racket from source
> everything is fine.
>
> Ray
>
>
> On Mon, May 14, 2012 at 8:17 AM, Robby Findler <robby at eecs.northwestern.edu>
> wrote:
>>
>> (Sorry it has taken me so long to reply to this.)
>>
>> What was in the definitions window when you did this?
>>
>> The stack trace makes me think that there is something wrong with the
>> language in the definitions window and something wrong with DrRacket's
>> error recover code in that case, as that's what DrRacket seems to be
>> doing is to try get some information from the language to use to
>> determine if the expression you're editing in the REPL is a complete
>> expression or not (ie if the return is just a newline, or if it should
>> submit the expression for evaluation).
>>
>> Robby
>>
>> On Wed, May 9, 2012 at 8:11 PM, Ray Racine <ray.racine at gmail.com> wrote:
>> > Hi,
>> >
>> > Recently (1-2 weeks?) GIT HEAD stopped working for me with the following
>> > error.  This happens in DrRacket when I attempt to use the REPL (hit the
>> > Run
>> > button, get the prompt, enter anything <rtn>, and BORK!! as below).
>> >  Everything else in DrRacket is flawless, editing, TypedRacket
>> > performance,
>> > check syntax etc.
>> >
>> > This is on a Linux, Fedora 16 64 bit.  Racket is built fresh after a git
>> > clean -fdx.
>> >
>> > [ray at ray pgm]$ racket/gui/base is not available
>> >
>> >  === context ===
>> > /usr/local/racket/collects/racket/sandbox.rkt:94:0:
>> > sandbox-make-namespace
>> > /usr/local/racket/collects/racket/sandbox.rkt:430:0:
>> > make-evaluation-namespace
>> > /usr/local/racket/collects/racket/sandbox.rkt:672:0: make-evaluator*
>> > /usr/local/racket/collects/drracket/private/module-language.rkt:105:6:
>> > init-sandbox
>> > /usr/local/racket/collects/drracket/private/module-language.rkt:92:6:
>> > get-language-info method in .../module-language.rkt:88:4
>> > /usr/local/racket/collects/drracket/private/rep.rkt:924:6:
>> > submit-to-port?
>> > method in ...cket/private/rep.rkt:389:4
>> > /usr/local/racket/collects/framework/private/text.rkt:2166:4:
>> > on-local-char
>> > method in ...ork/private/text.rkt:2002:2
>> > /usr/local/racket/collects/mred/private/wxme/editor-canvas.rkt:446:2:
>> > on-char method in editor-canvas%
>> > /usr/local/racket/collects/racket/private/more-scheme.rkt:151:2:
>> > call-with-break-parameterization
>> > /usr/local/racket/collects/racket/private/more-scheme.rkt:268:2:
>> > call-with-exception-handler
>> > /usr/local/racket/collects/mred/private/wx/gtk/window.rkt:631:4:
>> > dispatch-on-char method in window%
>> > /usr/local/racket/collects/mred/private/wx/common/queue.rkt:445:6
>> > /usr/local/racket/collects/mred/private/wx/common/queue.rkt:485:32
>> > /usr/local/racket/collects/mred/private/wx/common/queue.rkt:633:3
>> >
>> > channel-put: expected argument of type <channel>; given: #f
>> >
>> >  === context ===
>> > /usr/local/racket/collects/racket/private/misc.rkt:168:2: channel-put
>> >
>> >
>> > ____________________
>> >  Racket Users list:
>> >  http://lists.racket-lang.org/users
>> >
>
>


Posted on the users mailing list.