ulisp VS ecl

Compare ulisp vs ecl and see what are their differences.

ulisp

A version of the Lisp programming language for ATmega-based Arduino boards. (by technoblogy)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
ulisp ecl
33 15
361 -
- -
2.6 -
about 1 year ago -
C++
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ulisp

Posts with mentions or reviews of ulisp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-11.

ecl

Posts with mentions or reviews of ecl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-02.
  • Parenscript
    3 projects | news.ycombinator.com | 2 Mar 2023
    Thanks!

    I suspect the work is still ongoing. But maybe not on priority.

    This diff from around 3 months ago shows it's likely possible to run it in the browser currently but with a lot of caveats (pretty great nonetheless!).

    https://gitlab.com/embeddable-common-lisp/ecl/-/commit/6af4b...

  • Trying to build an android application with SBCL [help wanted]
    3 projects | /r/Common_Lisp | 24 Jan 2023
  • Implementation comparison
    2 projects | /r/lisp | 9 Jun 2022
    The correct one would be https://gitlab.com/embeddable-common-lisp/ecl
  • Wildcard-less alternative to cl:pathname?
    2 projects | /r/Common_Lisp | 6 Jun 2021
    Related issue: https://gitlab.com/embeddable-common-lisp/ecl/-/issues/394. That's not exactly this bug, but if that issue were fixed, I think it would also fix this.
  • uLisp
    18 projects | news.ycombinator.com | 4 May 2021
    > I would love to program my fleet of ESP8266s with anything but C.

    Have you looked into Embeddable Common-Lisp? (https://gitlab.com/embeddable-common-lisp/ecl)

  • GNU lightning: generates assembly language code at run-time
    5 projects | news.ycombinator.com | 8 Apr 2021
    > I don't think ECL uses GCC as a JIT; most common lisps use an incremental AOT compiler, which is different

    https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop...

    What is the difference?

    5 projects | news.ycombinator.com | 8 Apr 2021
    > No, but new javascript programs are frequently loaded.

    This is probably what confuses a lot of people into thinking that program distribution has anything to do with JIT. JavaScript is the only programming language for which the main method of program distribution is source-code-only, and why all the trade-offs of adaptive optimization seem necessary, to the point that now people are making its necessity into a virtue. Likewise for Java stealing credit for popularizing portable bytecode as the main method of program distribution - although Gosling coined the term JIT years before Java had a JIT compiler.

    > If (for instance) I write a script in c and run it with tcc -run

    And what happens when you use libtcc?

    > Compilation should occur concurrently with execution

    Execution of what? You do not need an interpreter or a bytecode VM to have a JIT compiler.

    > usually accompanied by some heuristic for deciding what to compile first (e.g. tracing)

    That is adaptive optimization, and is orthogonal to compiling (you can have adaptive optimizations in an interpreter or a bytecode VM). Tracing (which is not a heuristic btw) is a variation of profile-guided optimization, which is orthogonal to JIT.

    > Even if it is not, however, ECL does not JIT c, but produces it statically.

    I posted this elsewhere in this thread:

    https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop...

    Can you explain why you think that is not a JIT.

What are some alternatives?

When comparing ulisp and ecl you can also consider the following projects:

Lua-RTOS-ESP32 - Lua RTOS for ESP32

ferret - Ferret is a free software lisp implementation for real time embedded control systems.

lispBM - An interpreter for a concurrent lisp-like language with message-passing and pattern-matching implemented in C.

tinyscheme - TinyScheme is easy to learn and modify. It is structured like a meta-interpreter, only it is written in C.

nesper - Program the ESP32 with Nim! Wrappers around ESP-IDF API's.

quickjs-esp32 - QuickJS port for ESP32

beartype - Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python.

llvm-cbe - resurrected LLVM "C Backend", with improvements

qemu_esp32 - Add tensilica esp32 cpu and a board to qemu and dump the rom to learn more about esp-idf

mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR

fe - A tiny, embeddable language implemented in ANSI C