[racket-dev] Icons issues

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Mon Dec 5 16:49:06 EST 2011

Matthew, Neil, and I have been talking about how to resolve the
dependency problem. I think that the our thinking was that the best
plan is to break out a "pict" library that both slideshow and drracket
can safely depend on, and have the icons library depend on that.

We didn't consider putting some of it into 'meta', tho. That makes a
lot of sense to me. Neil, Matthew, how does that sound?

Size: It appears that the Redex library is so huge because of the .zo
files, which suggests that probably there are some macros who
expansion is poor (ie, a bug to be fixed), so probably that means that
icons is morally the largest one. ... well except that I get that
scribblings is 3x larger than icons when the docs are built.

Name: I think it is called the icons collection because that's where
the icons were before when Neil generalized things. We could make a
'sprites' collection and then move maybe even move planetcute into
that collection?

Finally, I think that we'll need a little bit of time to get this
resolved. Is there some way we can do something to get the nightly
building running again while we get this sorted out?

(I'll leave the minor point to Neil.)


On Mon, Dec 5, 2011 at 1:35 PM, Eli Barzilay <eli at barzilay.org> wrote:
> The icons collection has some issues that need to be resolved:
> * It's nice to have a more generalized library, but this goes to a
>  point where "icons" is really questionable.  This can be seen in the
>  weird result of logos being considered as a kind of icons.  More
>  generally, this could probably cover "sprites" in the future, so
>  perhaps some more generic term like "image" is more appropriate.
> * The "Making New SVG Icons" section should really be elsewhere -- and
>  IMO, this kind of text should go into some readme file (but if not,
>  then a second manual that will not get distributed would be more
>  fitting).  The text is written as a kind of a README thing anyway,
>  and it's explicitly said to be "for Racket developers".  As another
>  indication for this, the section documents stuff in `icons/private',
>  which is a self-contradiction (if it's documented then it's not
>  private).
> * Is it really worth it to add such a huge amount of stuff to the
>  distribution??  (It is now the second biggest collection, only redex
>  is a little bigger than it.)
> * It breaks the dependencies.  The error is:
>    unsatisfied dependency for "dr-bin":
>    "racket/collects/icons/main.rkt" (in:
>    "racket/collects/drracket/compiled/syncheck-drracket-button_rkt.dep"
>    ...)
>  This means that the DrRacket distribution requires "icons/main.rkt",
>  and that's missing from the distribution.
>  The reason it's missing is that Matthew tried to fix the more
>  serious problem that was there before: the new icons requires
>  `slideshow' and `texpict' (via `unstable/gui/pict'), and since
>  DrRacket uses it, it now depends on these too.
>  Potential ways to resolve it:
>  1. Decide that it's fine to make slideshow and texpict required for
>     drracket.
>  2. Dump the idea of making sense and stop making these tests.
>  3. Avoid the new dependency, and make the code not require that.
>     Potentially do that by splitting the code into a part that
>     drracket can use, and a part that is not needed.
> * Also, it seems to me that the code that uses Inkscape, and probably
>  the SVG files too, should not be distributed by default, since they
>  have no use for most people.  This means that it is better to put
>  them in something like `meta/images' which will sort out the
>  dependencies by default -- since `meta' is not intended for
>  distribution, and since normal code should never require stuff from
>  `meta'.
> * And a minor picky point: when I compare
>  "magnifying-glass-left-shiny.svg" and
>  "magnifying-glass-left-diffuse.svg", they are both cropped at the
>  top (at least the way that they're rendered in Emacs), but in
>  addition they're at different places (which is visible in the PNG
>  rendered files too).  I wouldn't have pointed it out, but it might
>  be some bug in your rendering script.
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

Posted on the dev mailing list.