soegaard2
2017-3-1 17:09:21

@soegaard2 has joined the channel


mflatt
2017-3-1 19:01:25

Status of the expander on Chez:


mflatt
2017-3-1 19:01:35

The expander running on Chez can expand itself


mflatt
2017-3-1 19:01:59

The expander proper runs at about the same speed in Racket and Chez; however, Chez’s compilation takes about as much time as the expander, so something like loading racket/base from source takes twice as long


mflatt
2017-3-1 19:04:15

Modules that go through the Racket expander are translated to Chez in a way that doesn’t support cross-module optimization; that’s sometimes a 20% hit (e.g., on the regexp implementation), but I don’t think it’s much of an effect for the time to load racket/base (because disabling cross-linklet optimization in Racket has a minor effect)


mflatt
2017-3-1 19:07:59

At this point, I’m not aware of any starting library or piece of the translation (besides cross-linklet optimization) that’s incomplete or done in a bad way, at least for loading racket/base


mflatt
2017-3-1 19:15:33

So, maybe this is a good point for others to take a look


samth
2017-3-1 20:47:49

I seem to remember hearing that the Chez compiler was really fast …


mflatt
2017-3-1 22:54:31

Maybe I’m doing something wrong, or maybe it’s just that everything’s relative


mflatt
2017-3-1 22:55:06

In any case, I’m not too worried about compilation times; the point of this experiment is to make the expander proper twice as fast


samth
2017-3-1 23:22:42

From the initial profiling I did a few days ago (I’m trying some more measurements now) my first guess is that we’ve traded slower HAMTs for faster other things


mflatt
2017-3-2 00:35:34

I’m not convinced that HAMT performance is a big effect. If I make hamt-set twice as expensive by doing its work twice, then load times and memory use don’t see to change all that much


mflatt
2017-3-2 00:36:11

But the expander on Chez is allocating 2–3 times as much memory (not counting compilation) as the expander on Racket, and that seems like a clue


samth
2017-3-2 00:36:34

it may be that the counting nature of Chez’s profiler (rather than measuring execution time) is throwing me off