Best platform for running uLisp?


#1

Now that uLisp supports quite a diverse range of platforms, I thought it would be useful to give some advice on choosing the best platform for different applications.

General projects

For general electronics projects I’d recommend the Arduino Mega 2560:

http://www.ulisp.com/show?1LGA

It is relatively inexpensive, provides a generous amount of memory, and because it’s a 5 V platform it supports a wide range of Arduino shields.

Pros

  • 5 V supply rail, so compatible with most Arduino shields.
  • 40 mA drive capability on the I/O pins, so ideal for driving LEDs etc.

Cons

  • 16 MHz clock is not as fast as the SAM/SAMD-based boards.

If you want a smaller footprint Mega 2560 board there’s the Iteaduino version on Banggood (although I haven’t tested it):

Maximum performance

If you want maximum performance I’d recommend the Arduino Due:

http://www.ulisp.com/show?1XA0#Arduino-Due

Although it has been superceded by the Arduino Zero, with its 84 MHz clock it is currently the fastest platform for uLisp:

Pros

  • Fast (84 MHz clock).
  • A generous number of I/O pins (54), and plenty of memory.

Cons

  • 3.3 V, so not compatible with 5 V Arduino shields.
  • I/O pins have a maximum drive current of 3 to 15 mA, so you may need a driver transistor for LEDs etc.
  • No way of saving/loading uLisp images unless you add an SD-card shield.

#2

Hi David! :)

Long time no see… sorry, I was actually heavily Lisping around. (Going to send you something in a few weeks - that is IF it works out.)

Now, a suggestion: might you port it to Linux? In such a way that it runs on Termux? See here:

Termux presently does not have a Common Lisp running on it. It has a Scheme, it has Picolisp and things like that.

And while I am at it: any chance for an MS-DOS port? :)

And any chance for a Javascript port? :) I am serious, see: https://repl.it/languages/scheme - there is NO Lisp, however.

And indeed, there is IMHO NO decent JavaScript-based, easy to use, CL-like Lisp. There is for instance this: https://jscl-project.github.io/ - but it cannot (read) anything, and if you try to paste multiple definitions, it will only take the first one. (One can (progn… (defun …) (defun …) ) one’s way around this limitation, but seriously?!)

Obviously without the parts chatting with the I/O pins.

The thing is this: you are having an extremely impressive system. It is just a little “obscure” for the masses out there in that you use it “merely” for microcontrollers. But if you e.g. port it to Javascript (using some C to Javascript compiler), you might say: here you have your uLisp development environment as a web-page… you could even host it on your site here! :)

Of course, these are just humble proposals, and I understand that microcontrollers are certainly keeping you busy enough, so if you reject these, it would be all too understandable.