Very interesting. I'd heard about the Reduceron a while back and it was the first I'd heard of computer architecture that was design to be more friendly to functional languages. It's all a bit opaque to me but I love skimming for the general idea.

There was quite a bit of research in the UK during the late '70s and into the '80s on developing hardware for applicative languages (back then people seemed to favour this terminology rather than "functional languages"). The most notable was probably ALICE (Applicative Language Idealized Computing Engine) developed at Imperial College led by John Darlington.

So I'd heard. Didn't they never get anywhere because there was no advantage to designing a new computer architecture when the newest from Intel or whoever would have double the speed regardless in 18months? Not the bets of times to compete.

Now on the other hand, it seems like the OP only had to drop $200 for a chip he could program in the same language he intends to run on the chip, and he's competing against a paradigm where to only way to scale is horizontally. Expanding unexplored avenues for vertical scaling has never looked better.

Hmm, this is true. Not sure it buys me much though, since now any code that wants to branch needs to make sure it saves the ra register. Unless you're saying the call instruction could specify the register you wanted to save the return address into, which might also work. I'll have to think about that a bit more I think.

I have a professor who is working on something related to this. There doesn't seem to be any strong information on it though apart from research papers. It's called Hydra, but it has really nice thing like the ability to use map, fold, scan and so on with circuits as well as recursion.

Where's the fun in that? Most of these features I can already see how to implement in hardware anyway, so it shouldn't be too much of an issue. The biggest problem I'm having at the moment is how to implement a 64 bit multiplier without being stupidly explicit about the whole thing. I could use the built in Num instance for signals in Kansas lava, but I need access to more of the intermediate results to be able to set the flags properly and do the parallel multiplication with the same circuit.

I wasn't aware Bluespec had educational licences, do you have a link. Their whole business model seems very strange, last time I looked there were no prices for anything on their site, and very little information at all about the product.

I know they have educational licenses, but I don't have a link.
It's the kind of business where there are few customers and they all have special needs, so nobody really buys without talking to Bluespec. Thus no price list.

It saves him from having to have at least three common one-register instructions. You can add it to decrement, subtract it to increment, and xor it to perform a logical not (and then increment to negate). With bit range extraction, you also get bit masks from it. It's an interesting point in the design space.