[SoC] I could mentor an Exupery project if there's interest.

bryce at kampjes.demon.co.uk bryce at kampjes.demon.co.uk
Tue Feb 27 23:20:01 UTC 2007


I'm happy to mentor a student for either a ESUG or SoC project.

The potential projects off the top of my head are:
 * Profiling and primitive writing
 * Floating point support
 * Fast 32 bit integers
 * A CPU port
 * A Mac port (John's done some work here, not sure what's remaining)

Profiling and primitive writing would involve taking some macro
benchmark, say a few crypto kernels, profiling them, figuring out what
primitives need to be written to make them perform well, then writing
the primitives. Fast 32 bit integers would be useful for crypto.

Floating point support and fast 32 bit integers would involve
refactoring the handling of arithmetic messages (+, -, /, and *) then
writing basic Exupery primitives for them. Then adding a simple
optimizer to remove the boxing and deboxing inside statements.

The goal would be to allow:

    a := b + c + d + e.

When run on floats or 32 bit integers to only create one object that
is stored in a. 

Then to allow:

    a at: x put: (b at: x) + (c at: x)

To not generate any objects where a, b, and c are float arrays or
integer arrays and x is just a SmallInteger index. This should be
possible just using type feedback, primitive inlining, and simple
tree traversal optimization all of which exist in Exupery now but
are not developed enough for this case.

A CPU port or a Mac port would require someone with a great
background, it should be possible for someone to do in that time frame
however I don't see incremental delivery working here so it would
require a student who we were confident could deliver the entire thing
in the time frame.

Bryce


More information about the Soc mailing list