[plt-scheme] DrScheme buglet?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Aug 31 14:10:04 EDT 2007

We always warn students when the expressions they execute in the  
Interactions window are not in the context of the program text in the  
Definitions window. I think we should do this all the time.





On Aug 31, 2007, at 2:06 PM, Robby Findler wrote:

> I now think that there shouldn't be a yellow warning.
>
> Instead, if there is an error, drscheme just runs a program that only
> contains the teachpacks, so the teachpacks are always available in the
> REPL.
>
> Robby
>
> On 8/31/07, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>> I am missing the yellow warning. (I did read the messages out of  
>> order.)
>>
>> On Aug 31, 2007, at 12:31 PM, Robby Findler wrote:
>>
>>> Did you try the current drscheme? :)
>>>
>>> On 8/31/07, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>>>> I second Ryan's proposal.
>>>>
>>>> On Aug 29, 2007, at 11:17 AM, Ryan Culpepper wrote:
>>>>
>>>>> On Wed, 2007-08-29 at 08:52 -0500, Robby Findler wrote:
>>>>>> This only happens when there are syntax errors, right? Not  
>>>>>> runtime
>>>>>> errors?
>>>>>>
>>>>>> I think that's just a property of the way teachpacks work in the
>>>>>> current world. I'm not sure it is possible to get around that.
>>>>>>
>>>>>> Roughly, what's happening underneath the hood, is that the
>>>>>> teachpack
>>>>>> is (an invisible) part of your program and, when your program is
>>>>>> syntactically malformed, no part of your program is available in
>>>>>> the
>>>>>> REPL. For example, in this program:
>>>>>>
>>>>>>   (define x 1)
>>>>>>   unbound-id
>>>>>>
>>>>>> You won't be able to use "x" in the REPL. But, in this one, you
>>>>>> will:
>>>>>>
>>>>>>   (define x 1)
>>>>>>   (first empty)
>>>>>>
>>>>>> I know that's not real help, but I hope it is at least  
>>>>>> explanatory.
>>>>>>
>>>>>> And maybe this will inspire someone (Matthew?) to think of a way
>>>>>> to do
>>>>>> better, I'm not sure.
>>>>>
>>>>> Would it make sense to make that explanation part of DrScheme?  
>>>>> That
>>>>> is:
>>>>>
>>>>> When a syntax error occurs, print a message to the effect of "No
>>>>> definitions executed due to syntax error" in the interactions
>>>>> window and
>>>>> lock the interactions editor.
>>>>>
>>>>> Or instead of locking the interactions, DrScheme could instead
>>>>> display
>>>>> one of those yellow highlighted messages (like "definitions out of
>>>>> sync"
>>>>> is displayed now) before every interaction. That would let  
>>>>> students
>>>>> use
>>>>> the interactions window to stumble around trying out syntaxes  
>>>>> until
>>>>> they
>>>>> find the right one.
>>>>>
>>>>> Ryan
>>>>>
>>>>>
>>>>>> On 8/29/07, Todd O'Bryan <toddobryan at mac.com> wrote:
>>>>>>> In v371 of DrScheme, it appears that teachpacks don't "stick."
>>>>>>>
>>>>>>> When you first open a DrScheme window, even though it says  
>>>>>>> that a
>>>>>>> teachpack is loaded, it's unavailable until you hit Run.
>>>>>>>
>>>>>>> That's not a big problem, but the teachpacks disappear if
>>>>>>> there's an
>>>>>>> error during a Run. In other words, if students are developing a
>>>>>>> function, hit run, and have an error, if they drop down to the
>>>>>>> interactions window to experiment, the functions provided by the
>>>>>>> teachpack are no longer available.
>>>>>>>
>>>>>>> The workaround is to comment out offending code in the  
>>>>>>> definitions
>>>>>>> window, but this is kind of a pain.
>>>>>>>
>>>>>>> Todd
>>>>>>>
>>>>>>> _________________________________________________
>>>>>>>   For list-related administrative tasks:
>>>>>>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>>>>>
>>>>>> _________________________________________________
>>>>>>   For list-related administrative tasks:
>>>>>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>>>
>>>>> _________________________________________________
>>>>>   For list-related administrative tasks:
>>>>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>>
>>>>
>>
>>



Posted on the users mailing list.