Looking at the code, I think this could happen if the buffer were modified (triggering a callback that sets arrow-vectors to #f) while check syntax were still coloring the buffer. Check syntax does do things like lock the editor in order to ensure that those callbacks don't happen.
So I guess the thing to do would be to figure out how it is getting set, probably by inspecting the stack at the point where (set! arrow-vectors #f) happens (line 404). If you dont' mind, could you add this between lines 403 and 404 and send the output? (printf "~s\n" (continuation-mark-set->context (current-continuation-marks))) ... are you in a teaching language? That would actually make more sense to me (but I'm still not getting the error to happen there either). Robby On Sat, May 23, 2009 at 10:57 AM, Robby Findler <ro...@eecs.northwestern.edu> wrote: > I tried to follow the steps with collects/drscheme/private/rep.ss and > couldn't make it fail. Specifically, I hit return on the second line > (making the buffer modified) and then check syntax; I waited until it > was in "coloring" mode (according to the status line) and then hit > cmd-s (for save) and nothing bad happened. I only tried it about 4 > times, tho, so maybe I just didn't try enough? > > Or possibly because I'm using a mac there is something about the way > event handling works on the mac that makes me miss the bug (because > the save button does not go away until check syntax completes). > > Robby > > On Fri, May 22, 2009 at 3:23 PM, David Van Horn <dvanh...@ccs.neu.edu> wrote: >> I can consistently put DrScheme in a bad state by the following: >> >> 1) Open a fairly large file (so syntax checking takes time) >> 2) Make a change >> 3) click Check Syntax >> 4) click Save -- before checking is complete. >> >> It seems as soon as syntax checking completes, an internal error is >> signalled. The error varies, but it always occurs. Here are a couple: >> >> 1) >> >> sequence-contract-violation: negative: method delete cannot be called, >> except in states (unlocked), args 0 360 >> >> === context === >> /Applications/PLT Scheme Full >> v4.1.900/collects/drscheme/private/unit.ss:529:10: after-save-file method in >> ...heme/private/unit.ss:454:8 >> /Applications/PLT Scheme Full >> v4.1.900/collects/drscheme/private/unit.ss:3884:29 >> /Applications/PLT Scheme Full >> v4.1.900/collects/scheme/private/more-scheme.ss:155:2: >> call-with-break-parameterization >> /Applications/PLT Scheme Full >> v4.1.900/collects/scheme/private/more-scheme.ss:271:2: >> call-with-exception-handler >> >> 2) >> >> hash-ref: expects type <hash> as 1st argument, given: #f; other arguments >> were: #(struct:object:...engine/test-tool.scm:30:6 ...) >> #<procedure:...heme/syncheck.ss:461:35> >> >> === context === >> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:414:12: >> syncheck:add-menu method in ...drscheme/syncheck.ss:221:10 >> /Applications/PLT Scheme Full v4.1.900/collects/scheme/private/map.ss:44:11: >> for-each >> /Applications/PLT Scheme Full >> v4.1.900/collects/drscheme/syncheck.ss:1671:22: at-phase >> /Applications/PLT Scheme Full v4.1.900/collects/scheme/private/map.ss:44:11: >> for-each >> /Applications/PLT Scheme Full v4.1.900/collects/scheme/private/map.ss:44:11: >> for-each >> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:1489:4: >> annotate-basic >> /Applications/PLT Scheme Full >> v4.1.900/collects/drscheme/syncheck.ss:1413:14: expanded-expression >> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:1247:38 >> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:1244:35 >> >> After this, the definitions window is broken. I cannot reposition the >> cursor, type text, etc. I can click Save but it doesn't go away. Run and >> the interactions window work fine. >> >> This is on 4.1.900-svn21may2009 [3m], Mac OSX, ISL/lambda. >> >> Should I be submitting bug reports, or emailing this list since this >> concerns the release candidate? >> >> David >> _________________________________________________ >> For list-related administrative tasks: >> http://list.cs.brown.edu/mailman/listinfo/plt-dev >> > _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev