Re: [racket-dev] online check syntax deadlock: can you help?
At Thu, 1 Sep 2011 15:20:27 -0700, John Clements wrote: Note that the code ignores the result of `TransformProcessType', which is a bad idea. If you remove the `void' wrapper, what number result gets printed on your machine? Looks like it's -50. -50 means bad argument. Apple's docs say struct ProcessSerialNumber { unsigned long highLongOfPSN; unsigned long lowLongOfPSN; }; but MacTypes.h says struct ProcessSerialNumber { UInt32 highLongOfPSN; UInt32 lowLongOfPSN; }; and those aren't the same on a 64-bit system. Maybe the docs that I found are too old or are only meant to apply to 32-bit systems. Can you remind me whether you're using a 32-bit or 64-bit build? When I try the 64-bit build, then it fails in the way you describe until I fix the `_ProcessSerialNumber' declaration: (define-cstruct _ProcessSerialNumber ([highLongOfPSN _uint32] [lowLongOfPSN _uint32])) _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] online check syntax deadlock: can you help?
On Aug 31, 2011, at 5:08 PM, Robby Findler wrote: I've been seeing for some time now a deadlock in online check syntax. That is, after a while it just gets stuck and fails to complete the online check syntax. Typically what you see is the little blue dot come on but the cpu load drop to zero without any check syntax arrows ever showing up. Matthew and I have fixed a few things that could lead to these symptoms and I've just now pushed a change to compiler/cm to add some more informative logging. So: if you have the energy, can you please run DrRacket like this: racket -W info -l- drracket This doesn't work at all for me on the Mac, and highlights a problem that I've had at other times with racket GUI frames: none of the keyboard input goes to the window. Specifically, here's the sequence of events: 1) run racket -W info -l- drracket 2) See splash window come up, *underneath* terminal window and not given focus. 3) See DrRacket frame come up, again without focus. 4) Click on DrRacket frame, it gets focus and I see the cursor blinking. 5) Type a few characters -- they don't show up in DrRacket. Instead, they go to the terminal window. Furthermore, there's no DrRacket menu bar, and no DrRacket icon in the cmd-tab list. 6) Go back to terminal window, use ctrl-\ to blow it away. Is that expected? It looks like the OS is preventing not-full-fledged-app-things from opening windows and handling input. This is OS 10.6,8. John Clements smime.p7s Description: S/MIME cryptographic signature _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] online check syntax deadlock: can you help?
Is that expected? It looks like the OS is preventing not-full-fledged-app-things from opening windows and handling input. This is OS 10.6,8. It probably needs to run from inside the .app folder. OS X uses the full path to the binary to figure out the name to use to dispatch events, or something similarly odd! I've tried a couple of quick experiments along the lines of $ /Applications/Racket v5.1.3/DrRacket.app/Contents/MacOS/DrRacket -W info -l- drracket but that binary doesn't like the -W switch. [...] Aha, removing the DrRacket binary from the Contents/MacOS directory and symlinking plain racket there as DrRacket instead works for me: $ mv DrRacket DrRacket.moved-out-of-the-way $ ln -s /Applications/Racket\ v5.1.3/bin/racket DrRacket $ /Applications/Racket v5.1.3/DrRacket.app/Contents/MacOS/DrRacket -W info -l- drracket I launch that all from an xterm in X11, though, so if it doesn't work for you that's an interesting clue that Terminal.app is doing something weird perhaps. Regards, Tony _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] online check syntax deadlock: can you help?
[[ FWIW, I have been running drracket like this for a couple of weeks and have had no problem. Mac OS X 10.6.8 ]] On Sep 1, 2011, at 8:34 AM, Matthew Flatt wrote: At Wed, 31 Aug 2011 23:00:25 -0700, John Clements wrote: On Aug 31, 2011, at 5:08 PM, Robby Findler wrote: I've been seeing for some time now a deadlock in online check syntax. That is, after a while it just gets stuck and fails to complete the online check syntax. Typically what you see is the little blue dot come on but the cpu load drop to zero without any check syntax arrows ever showing up. Matthew and I have fixed a few things that could lead to these symptoms and I've just now pushed a change to compiler/cm to add some more informative logging. So: if you have the energy, can you please run DrRacket like this: racket -W info -l- drracket This doesn't work at all for me on the Mac, and highlights a problem that I've had at other times with racket GUI frames: none of the keyboard input goes to the window. Specifically, here's the sequence of events: 1) run racket -W info -l- drracket 2) See splash window come up, *underneath* terminal window and not given focus. 3) See DrRacket frame come up, again without focus. 4) Click on DrRacket frame, it gets focus and I see the cursor blinking. 5) Type a few characters -- they don't show up in DrRacket. Instead, they go to the terminal window. Furthermore, there's no DrRacket menu bar, and no DrRacket icon in the cmd-tab list. 6) Go back to terminal window, use ctrl-\ to blow it away. Is that expected? It looks like the OS is preventing not-full-fledged-app-things from opening windows and handling input. This is OS 10.6,8. The code that is supposed to make the process a full-fledged app is line at line 81 of collects/mred/private/cocoa/queue.rkt: ;; In case we were started in an executable without a bundle, ;; explicitly register with the dock so the application can receive ;; keyboard events. (define-cstruct _ProcessSerialNumber ([highLongOfPSN _ulong] [lowLongOfPSN _ulong])) (define kCurrentProcess 2) (define kProcessTransformToForegroundApplication 1) (define-appserv TransformProcessType (_fun _ProcessSerialNumber-pointer _uint32 - _OSStatus)) (void (TransformProcessType (make-ProcessSerialNumber 0 kCurrentProcess) kProcessTransformToForegroundApplication)) Note that the code ignores the result of `TransformProcessType', which is a bad idea. If you remove the `void' wrapper, what number result gets printed on your machine? _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] online check syntax deadlock: can you help?
On Sep 1, 2011, at 5:34 AM, Matthew Flatt wrote: At Wed, 31 Aug 2011 23:00:25 -0700, John Clements wrote: This doesn't work at all for me on the Mac, and highlights a problem that I've had at other times with racket GUI frames: none of the keyboard input goes to the window. Specifically, here's the sequence of events: 1) run racket -W info -l- drracket 2) See splash window come up, *underneath* terminal window and not given focus. 3) See DrRacket frame come up, again without focus. 4) Click on DrRacket frame, it gets focus and I see the cursor blinking. 5) Type a few characters -- they don't show up in DrRacket. Instead, they go to the terminal window. Furthermore, there's no DrRacket menu bar, and no DrRacket icon in the cmd-tab list. 6) Go back to terminal window, use ctrl-\ to blow it away. Is that expected? It looks like the OS is preventing not-full-fledged-app-things from opening windows and handling input. This is OS 10.6,8. The code that is supposed to make the process a full-fledged app is line at line 81 of collects/mred/private/cocoa/queue.rkt: ;; In case we were started in an executable without a bundle, ;; explicitly register with the dock so the application can receive ;; keyboard events. (define-cstruct _ProcessSerialNumber ([highLongOfPSN _ulong] [lowLongOfPSN _ulong])) (define kCurrentProcess 2) (define kProcessTransformToForegroundApplication 1) (define-appserv TransformProcessType (_fun _ProcessSerialNumber-pointer _uint32 - _OSStatus)) (void (TransformProcessType (make-ProcessSerialNumber 0 kCurrentProcess) kProcessTransformToForegroundApplication)) Note that the code ignores the result of `TransformProcessType', which is a bad idea. If you remove the `void' wrapper, what number result gets printed on your machine? Looks like it's -50. Here's the transcript: pcp070159pcs:~/plt clements$ racket -W info -l- drracket -50 Pango: couldn't load font Apple Chancery Medium Not-Rotated 13, falling back to Sans Medium Not-Rotated 13, expect ugly output. expanding-place.rkt: 01 starting thread expanding-place.rkt: 02 setting basic parameters expanding-place.rkt: 03 setting module language parameters expanding-place.rkt: 04 setting directories expanding-place.rkt: 05 installing security guard expanding-place.rkt: 06 setting uncaught-exception-handler expanding-place.rkt: 07 starting read-syntax expanding-place.rkt: 08 read expanding-place.rkt: 09 starting expansion expanding-place.rkt: 10 expanded expanding-place.rkt: 11 handlers finished expanding-place.rkt: 12 finished John smime.p7s Description: S/MIME cryptographic signature _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] online check syntax deadlock: can you help?
I've been seeing for some time now a deadlock in online check syntax. That is, after a while it just gets stuck and fails to complete the online check syntax. Typically what you see is the little blue dot come on but the cpu load drop to zero without any check syntax arrows ever showing up. Matthew and I have fixed a few things that could lead to these symptoms and I've just now pushed a change to compiler/cm to add some more informative logging. So: if you have the energy, can you please run DrRacket like this: racket -W info -l- drracket instead of using the ususal drracket command line and save the output, sending me the last few hundred or thousand lines or so when you notice that it gets stuck? Thanks, Robby _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev