On Mon, Jul 27, 2015 at 4:48 PM, John Carmack <jo...@oculus.com> wrote: > Any chance that could make it in as a DrRacket feature? Seems likely to have > moderately broad utility. > > Out of curiosity, what programming environment do the core Racket devs use > when programming Racket? I quite like DrRacket for my projects that are only > a few files, but it doesn't seem to be aimed at large scale work. >
Many Racketeers use DrRacket for very big things, but I'd say that it requires a few changes to the default configuration to work really well. Such as turning on tabs and getting used to its keybindings and the ability to open module paths directly. Similarly, getting used to using the syntax arrows is really useful for big programs. I am a black sheep, however, and am often chided by Matthias because I use Emacs for everything. I use a very small piece of Greg Hendershot's racket-mode, which is partly designed to be like a good Lisp mode but for Racket and partly designed for porting over the awesome features of DrRacket. I mostly use Emacs because of the historical baggage of all my keybindings and environment and quickly getting around my files. Jay > -----Original Message----- > From: Matthew Flatt [mailto:mfl...@cs.utah.edu] > Sent: Monday, July 27, 2015 2:43 PM > To: John Carmack > Cc: Racket Users > Subject: Re: [racket-users] continuing after a user break > > At Mon, 27 Jul 2015 19:32:32 +0000, John Carmack wrote: >> Is it possible to continue execution after a ^b user break in DrRacket >> (not debugging)? It would often be useful to be able to ^b, print >> some global state, set some flags, and continue running. > > The `exn:break` exception record includes a `continuation` field. An > exception handler can apply that continuation to resume from the point of the > break. > > A significant limitation is that the handler has to be installed with > `call-with-continuation-handler` or `uncaught-exception-handler`. If any > `with-handlers` is in effect, it will catch any continuation and escape to > the `with-handlers` form, at which point the continuation in `exn:break` > cannot be applied (because it's an escape-only continuation). > > ---------------------------------------- > > #lang racket > > (let ([orig (uncaught-exception-handler)]) > (uncaught-exception-handler > (lambda (exn) > (if (exn:break? exn) > (begin > (printf "continuing...\n") > ((exn:break-continuation exn))) > (orig exn))))) > > (let loop () (loop)) > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- Jay McCarthy http://jeapostrophe.github.io "Wherefore, be not weary in well-doing, for ye are laying the foundation of a great work. And out of small things proceedeth that which is great." - D&C 64:33 -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.