70 likes | 180 Vues
This document outlines the current progress and future plans for the Hume Compiler (hamc) and its related tools. Key advancements include improvements in naive macro expansion, architecture-specific configuration files, and runtime system integration. We also discuss the generation of I/O interfaces and scheduling code. Future tasks involve completing the Renesas version, benchmarking against other compilers, and enhancing the code's specialization and opcode expansion methods. Initial performance comparisons and potential reporting opportunities are also noted.
E N D
Ham Compiler Progress Robert Pointon Hume Meeting Heriot-Watt
Hume Tools • phamc: hume to ham (Haskell program). • ham2c: ham compiler (C program). • Naïve macro expansion… • Config files to specify architecture. • Runtime system for ham. • Compiled for a specific architecture. • humec: pulls everything together. % humec pump.hume Executable ‘pump’.
hamc progress • Expansion of opcodes. 90% • Generate wiring consume/checking. • Generate I/O interfacing. 90% • Generate basic scheduling code. • Make easy to use with the Renesas tools, i.e. Windows executable.
Todo - short term • Complete Renesas version. • Gather some initial results comparing hamc, hami, and the hume interpreter. • What to use as benchmark programs? • Profile hamc implementation. • Write a report/paper?
Todo - long term • Boxes • Phamc to provide type info for ham opcodes. • Specialization of code. • Wires • Reuse of wire values/heaps. • Foreign Language Interface. • Scheduling improvements. • Alternatives to naïve opcode expansion. • Using more info from various analyses.