[racket-dev] Caching rendered icons

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Thu Jan 12 17:53:30 EST 2012

IMO, I think that it is better to have two names so that people are
not confused by the possibly radically different performance
characteristics when they do things like introduce a variable or


On Thu, Jan 12, 2012 at 4:32 PM, Eli Barzilay <eli at barzilay.org> wrote:
> 50 minutes ago, Neil Toronto wrote:
>> On 01/12/2012 02:25 PM, Eli Barzilay wrote:
>> > 20 minutes ago, Neil Toronto wrote:
>> >>
>> >> This is friggin' awesome. The expression
>> >>
>> >>       (compiled-left-arrow-icon '(255 95 78) 24)
>> >
>> > Why is there a `compiled-' in the name?
>> There's also a "left-arrow-icon" function, which renders it at runtime.
>> The "compiled" part means:
>>   * This icon is rendered statically.
>>   * There are restrictions on the arguments.
> I'd expect a single `left-arrow-icon' function, which in some cases
> can be "optimized" by being pre-compiled by a macro.  IOW, rename the
> current `compiled-left-arrow-icon' to `left-arrow-icon', and rename
> the `left-arrow-icon' to some internal name that is not exposed.  Then
> make it so that if it isn't possible to to pre-compile the form
> statically, then it expands to the dynamic one.  This way people don't
> have to worry about implementation issues, and simply use the
> "function".  Possibly also spit out some log warning if it can't be
> compiled statically, for debugging.
>> > I think that it was on the r6rs list that during some
>> > macro-related flame I posted something about invoking a C compiler
>> > as part of a macro expansion, and someone replied that it sounded
>> > crazy.  (I think that the argument was that macros should really
>> > only do simple `syntax-rules'-like things.)
>> My mad-scientist advisor has actually done this. (I'm going to keep
>> a tally of the number of times I write that.) I used it once to make
>> building an FFI easier. What was it called... "Super C"? Not
>> terribly portable, but very cool.
> Yes, that's what I was referring to in that post.
> A few minutes ago, Jay McCarthy wrote:
>> I use it every year teaching PLAI so I can give little C examples.
> Good idea...  (But I don't do C in my course...  Maybe I should, just
> to make the interoperability point...)
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!
> _________________________
>  Racket Developers list:
>  http://lists.racket-lang.org/dev

Posted on the dev mailing list.