I pine for something that runs in 64KB flash/16K RAM that doesn't suck.
I pine for something that runs in 64KB flash/16K RAM that doesn't suck.
Look at a die microphotograph of an ARM Cortex M4.
The RAM takes up more than half the die area. Flash is about a third of the die area. ALL the functional units and processing cores takes up less than 1/4 of the die area.
Once you have external memory 64MB is the smallest that you can get and be confident that you can obtain it for the next years. Its also not a big cost factor.
Grisp-Base is a evaluation board to get people easily started with Erlang running directly on hardware so not much use artificially limiting memory here. The board size is also larger than minimal to have all these nice PMOD connectors with enough room for the PMODs around them. Normally one would build some prototypes or smaller applications < 100 boards. When this works its fairly easy and cheap to build a customized board only the parts needed for the actual IoT application.
There are new SoC automotive controllers who will be able to run a Erlang VM without connecting any external memory which we plan to target for the future.
64K flash/16K RAM will never be able to run a Erlang VM so its outside of our scope. IoT trends are to move more calculation towards the edge since the cloud can't grow enough.
For many use cases, going to a PIC doesn't make sense if just a few units are to deployed, with the price difference being just a few euros.
though it's a bid of a different mindset. Thinking Forth is great book ( not just in terms of forth ) which really sells the idea.
Sorry, but it is not a production language. It is a puzzle language. Many things which are straightforward in even the worst programming language are a brain teaser to figure out how to organize in the "Forth Way(tm)".
Scheme and Lua come closest to my ideal.
However, I just can't deal with 1-based indexing from Lua. Sorry. Too many things talk to C API's.
Scheme is okay, but almost none of them are truly small anymore. Even the ones like picobit (https://github.com/stamourv/picobit) require quite some grunty support from a desktop machine outside the processor.
http://web.archive.org/web/20101024223709/http://forth.gsfc....
as an aside, The guy who was primarily responsible for that now has a FRP library ( http://sodium.nz/ ) and written a book on FRP using petrol pumps as an example
We plan to use this for the inner loop of the Erlang VM since its much faster than external memory. But thats a optimization for later after we can actually ship boards (QI 2017)