Custom Query (184 matches)
Results (13 - 15 of 184)
|#48||fixed||Implement the semi-tagging optimisation in GHC|
This is an optimisation idea for GHC.
Currently when evaluating an expression that is the scrutinee of a case:
GHC jumps to the code for the
We can go a bit further than this, too. Since there are 2 spare bits (4 on a 64-bit machine), we can encode 4 (16) states. Taking 0 to mean "unevaluted", that leaves 3 (15) states to encode the values for the "tag" of the constructor. eg. an evaluated Bool would use 1 to indicate False and 2 to indicate True. An evaluated list cell would use 1 to indicate  and 2 to indicate (:).
The nice thing about the current approach is that code size is small; implementing the test and jump will certainly add extra code to compiled case expressions. But the gains might be worth it. Complexity-wise this means masking out these bits when following any pointer to a heap object, which means carefully checking most of the runtime.
|#54||fixed||A model for client-side scripts with HSP|
Allegro <http://alleg.sf.net> is a very capable C-library for games development. It does everything from packed files to sound to graphics. The way the library is set up makes it a good target for a haskell binding.
OpenGL can interact with Allegro through allegroGL. this could be added as well if time allows.
Difficulity: Low but potentially much work. Will learn FFI, potentially c2hs and some about games programming