n Sun, May 6, 2012 at 6:13 AM, Luís Oliveira <luismbo@gmail.com> wrote:
On Sat, May 5, 2012 at 4:40 PM, Liam Healy <lnp@healy.washington.dc.us> wrote:
> However, this comment got me to thinking that there are a lot of
> (unnecessary) round trips through parse-type/unparse-type.  It seems to me
> that they could be eliminated or reduced.  Perhaps as a design philosophy,
> we should only have parsed types internally, and then we won't need
> unparse-type at all?   Changing this would be a lot of work, I realize.

What makes you say there are a lot round-trips through parse- and
unparse-type? Grepping the source we code, we can find two usages of
unparse-type: (1) the make-load-form method for foreign-type and (2)
some foreign-array-type code.

(2) shouldn't be there and it's got a FIXME nearby. (1) is why
unparse-type was introduced. Instances of foreign-type can end up in
fasls after various macros and compiler macros kick in and so we need
a way to serialize them.

Cheers,

--
Luís Oliveira
http://r42.eu/~luis/

Ah, OK, not round trips, forget what I said about unparse-type.  My sense is there's repeated reparsing.  If a type was always parsed when read, and the parsed form is stored, would that save some reparsing?   So the type slot in foreign-struct-slot would not need to be parsed each time it's used.

Thanks,
Liam