‹ BackHN Continuity

Thread

LispBM is a concurrent Lisp for microcontrollers with message passing

61 points · 6 comments · so-cal-schemer

Loading the complete thread in the background. This saved snapshot is available now. Refresh

  1. so-cal-schemer · · focus · HN ↗
    LispBM (LBM) is a Lisp or Scheme-like programming language for microcontrollers. LispBM also borrows a couple of ideas from Erlang when it comes to concurrency, message passing, pattern matching and process monitoring. The LispBM runtime system can be compiled for either 32 or 64-bit platforms and runs on a wide range of hardware such as, for example, STM32, NRF52, ESP32 or X86. When running the LispBM runtime system on a microcontroller, it can be built on top of ChibiOS, FreeRTOS or ZephyrOS or, if you are adventurous, on bare-metal. LispBM can also be built to run on top of regular Linux (and now even Windows).

    Who wouldn’t want a REPL (read eval print loop) on their embedded platform? This is what LispBM is for!

    Try it now (WebAssembly)

    <a href="https:&#x2F;&#x2F;www.lispbm.com&#x2F;repl-wasm&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.lispbm.com&#x2F;repl-wasm&#x2F;

    1. throwaway81523 · · focus · HN ↗
      I don&#x27;t feel likely to get much out of typing (+ 2 2) and getting 4 in a web REPL. What I want is a 1-page writeup with basics about the implementation: Lisp dialect, implementation strategy, special features and limitations, how the concurrency works, resource requirements, source code SLOC, stuff like that. It&#x27;s ok for the writeup to assume I&#x27;m familiar with Lisp. I looked at the web site for a few seconds and the home page was almost entirely uninformative. I didn&#x27;t try reading the documentation but might look at it later.

      The home page of ulisp.com isn&#x27;t exactly what I want either, but it&#x27;s a lot closer.

      1. jazzyjackson · · focus · HN ↗
        That’s it’s a Lisp that will run on a microcontroller is interesting enough for me? Finally a competitor to micropython :D
        1. throwaway81523 · · focus · HN ↗
          Try Hedgehog: <a href="https:&#x2F;&#x2F;github.com&#x2F;sbp&#x2F;hedgehog" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sbp&#x2F;hedgehog
    2. so-cal-schemer · · focus · HN ↗
      Here is another tiny and highly portable Scheme that I submitted along with this:

      <a href="https:&#x2F;&#x2F;github.com&#x2F;udem-dlteam&#x2F;ribbit" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;udem-dlteam&#x2F;ribbit

      Ribbit: A portable, compact and extensible Scheme implementation to 25 targets. R4RS compliant.

      <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=49733898">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=49733898

      1. so-cal-schemer · · focus · HN ↗
        Not to be confused with

        <a href="https:&#x2F;&#x2F;research.scheme.org&#x2F;lambda-papers&#x2F;lambda-papers-rabbit.html" rel="nofollow">https:&#x2F;&#x2F;research.scheme.org&#x2F;lambda-papers&#x2F;lambda-papers-rabb...

  2. so-cal-schemer · · focus · HN ↗
    Here is another tiny and highly portable Scheme that I submitted along with this:

    <a href="https:&#x2F;&#x2F;github.com&#x2F;udem-dlteam&#x2F;ribbit" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;udem-dlteam&#x2F;ribbit

    Ribbit: A portable, compact and extensible Scheme implementation to 25 targets. R4RS compliant.

    <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=49733898">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=49733898

  3. BoingBoomTschak · · focus · HN ↗
    1. I didn&#x27;t manage to find a non trivial (i.e. Hello World) example anywhere on the website. That should be one of the first things greeting my eyes, especially since the colloquial Lisp family is so large you can&#x27;t easily infer the syntax.

    2. A Lisp without Emacs support other than syntax highlighting?

    1. svenssonjoel · · focus · HN ↗
      1. There are plenty of examples in the repository. But the more meaty examples are found in Vesc Tool related to the Vesc integration of lispbm. Lispbm is meant to be added to a more comprehensive embedded application and provide scripting capabilities to that app. For each app&#x2F;integration the meaning of hello world differs. 2.there is vscode support, tree sitter stuff, a language server. It&#x27;s an open source community effort.

      Thanks for checking it out

  4. pjsg · · focus · HN ↗
    I was hoping to find a &#x27;blink the LED&#x27; example for the ESP32. Then I&#x27;d like to see &#x27;Blink a LED at 1Hz and another LED at 1.234Hz&#x27; (or any pair of frequencies where one does not divide the other).
    1. svenssonjoel · · focus · HN ↗
      Blinking leds at precise frequencies is not the intended use of LispBM. It&#x27;s not a language for real time guarantees. The idea is to add scriptability and versatility to embedded applications written in c&#x2F;c++ (or anything else which can link in a c library). If you want a precise led blinker you would write low level real time led blinker in c. You could then set up scripting of this led blinker using LispBM. Maybe you want to receive the frequency to blink the led at over Can?
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.