[Haskell-cafe] Re: How many "Haskell Engineer I/II/III"s are there?

Jason Dusek jason.dusek at gmail.com
Fri Feb 12 01:53:42 EST 2010

  I looked at generating C for AVR with JHC. I wanted to see what
  this program became:


  The program is relatively simple. It doesn't work, of course (I
  never did get the right FFI bindings figured out) but the
  generated C is suggestive.


  The generated `main' is very plain:

    static void A_STD
            uintptr_t v10 = ((uintptr_t)DDRB());
            *((uint8_t *)(v10)) = 23;
            uintptr_t v18 = ((uintptr_t)PORTB());
            return *((uint8_t *)(v18)) = 23;

  This is a simple, literal translation of my foreign calls. To
  all appearances, the runtime is entirely bypassed. The
  function `jhc_function_inc()' is a performance counter, set to
  no-op for non-profiling builds as far as I can tell.

  It also doesn't compile but that's because I can't figure out
  how to declare pointers in the FFI; and if I could, then I'd
  have to go through by hand and pull out includes for things
  that aren't available for AVR programming -- <locale.h> and

Jason Dusek

More information about the Haskell-Cafe mailing list