At the moment there is a barn-door sized security hole in DrRacket, whereby it will take any snip% instance from the user's program and just display it in the repl. You can exploit this for Good by making the current-print of your language turn some values into snips (like images and things). 2htdp/image already does this, so that should just work if you return those. Its hard to tell what value Shriram's program was returning tho. But if it is a bitmap% object, he just has to do
(make-object image-snip% ...the-bitmap-goes-here...) We will close this hole at some point, when we have a reasonable way to allow people to add new kinds of values without the security breach. Robby On Thu, Aug 26, 2010 at 6:17 PM, Jay McCarthy <jay.mccar...@gmail.com> wrote: > From what I can tell, it comes from ensuring that DrRacket shares the > htdp/image (or whatever) namespace with the running program so the > structs are the same and DrRacket's default renderer is detecting it. > I'm not sure how to replicate it though. (I tried for a bit so I could > make #lang frtime work.) > > Jay > > On Thu, Aug 26, 2010 at 11:55 AM, Shriram Krishnamurthi <s...@cs.brown.edu> > wrote: >> What is the #lang magic that makes >> >>> (get-image-from-web "http://racket-lang.org/logo.png") >> (instantiate (class ...) ...) >> >> show the image rather than just its constructor? >> >> Shriram >> _________________________________________________ >> For list-related administrative tasks: >> http://lists.racket-lang.org/listinfo/dev >> > > > > -- > Jay McCarthy <j...@cs.byu.edu> > Assistant Professor / Brigham Young University > http://teammccarthy.org/jay > > "The glory of God is Intelligence" - D&C 93 > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev