Created issued including patch:

  http://code.google.com/p/clojure/issues/detail?id=78

The CA is in the mail.


On Wed, Feb 11, 2009 at 2:08 PM, Rich Hickey <richhic...@gmail.com> wrote:
>
>
>
> On Feb 11, 4:36 am, "Remco van 't Veer" <rwvtv...@gmail.com> wrote:
>> On Tue, Feb 10, 2009 at 1:57 PM, Remco van 't Veer <rwvtv...@gmail.com> 
>> wrote:
>>
>>
>>
>> > On Tue, Feb 10, 2009 at 1:33 PM, Rich Hickey <richhic...@gmail.com> wrote:
>> >> On Feb 10, 3:47 am, "Remco van 't Veer" <rwvtv...@gmail.com> wrote:
>> >>> Hi Rich,
>>
>> >>> I've been working on getting clojure in a more usable state for android
>> >>> [1].  One of the challenges was to speedup startup time.  A lot of
>> >>> time is spend in the lisp-reader because all constants are stored as
>> >>> lisp expressions.  I've replace most of this code by a more direct
>> >>> approach; emitting calls to Symbol.intern, RT.var, RT.vector etc.
>> >>> These changes make loading core about 3 to 4 times faster.
>>
>> >> I am interested in this. The current constant serialization is just
>> >> the simplest thing to do, and had added utility for any text-based
>> >> transfer. I held off on binary/bytecode serialization because I hadn't
>> >> yet decided how to make that extensible. I guess it's not the worst
>> >> thing if the set of frequently used known types gets special handling
>> >> with the print-dup fallback.
>>
>> >>> Are you interested in this patch?  Should I open an issue on the
>> >>> project site?
>>
>> >> Sure, thanks. It's important that the mechanism preserve the actual
>> >> types, so sections like this bit (in emitValue):
>>
>> >> if (value instanceof List)
>>
>> >> still need refinement.
>>
>> > I'll work on preserving the exact type for the common cases and will
>> > open an issue with patch when I got it working.
>>
>> Working on this I noticed a lot of meta data is discarded by to
>> current, serialize everything to lisp expressions, code when compiling
>> core.clj.  This happens because the constants are emitted while core
>> is loaded and the writer depends on core-print which does write meta
>> data for a couple of types.
>>
>> Isn't this a problem?  Rich can you confirm?  Or should the constants
>> in AOT compiled code not contain meta data at all?  Seems very
>> unlikely!  If it doesn't need meta data, why not?
>>
>> Emitting meta data properly might even allow one to get rid of
>> *print-initialized* which seems hackish to me.
>
> Yes, there are gaps in metadata retention, and *print-initialized* is
> definitely a bootstrap thing I'd love to lose.
>
> Rich
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to