Som VS crosstalk

Compare Som vs crosstalk and see what are their differences.

Som

Parser, code model, navigable browser and VM for the SOM Smalltalk dialect (by rochus-keller)

crosstalk

Smalltalk-80 bare metal implementation for the Raspberry Pi (by michaelengel)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
Som crosstalk
8 10
22 356
- -
0.0 3.6
over 1 year ago almost 4 years ago
C++ C
GNU General Public License v3.0 only -
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.

Som

Posts with mentions or reviews of Som. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-26.
  • Making Smalltalk on a Raspberry Pi (2020)
    3 projects | news.ycombinator.com | 26 Aug 2023
    > Smalltalkish

    Have a look at the SOM dialect which is successfully used in education: http://som-st.github.io/

    Here is an implementation in C++ which runs on LuaJIT: https://github.com/rochus-keller/Som/

    > unfortunately out of print book Smalltalk 80: the language and its implementation is commonly recommended

    I assume you know this link: http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook....

    Here is an implementation in C++ and Lua: https://github.com/rochus-keller/Smalltalk

  • Do transpilers just use a lot of string manipulation and concatenation to output the target language?
    4 projects | /r/ProgrammingLanguages | 27 May 2023
  • Ask HN: Admittedly Useless Side Projects?
    21 projects | news.ycombinator.com | 24 Jun 2022
    - https://github.com/rochus-keller/Smalltalk/ Parser, code model, interpreter and navigable browser for the original Xerox Smalltalk-80 v2 sources and virtual image file

    - https://github.com/rochus-keller/Som/ Parser, code model, navigable browser and VM for the SOM Smalltalk dialect

    - https://github.com/rochus-keller/Simula A Simula 67 parser written in C++ and Qt

    > do you regret those endeavours?

    No, not in any way; the projects were very entertaining and gave me interesting insights.

  • Ask HN: Recommendation for general purpose JIT compiler
    12 projects | news.ycombinator.com | 15 May 2022
    If your DSL is statically typed then I recommend that you have a look at the Mono CLR; it's compatible with the ECMA-335 standard and the IR (CIL) is well documented, even with secondary literature.

    If your DSL is dynamically typed I recommend LuaJIT; the bytecode is lean and documented (not as good as CIL though). LuaJIT also works well with statically typed languages, but Mono is faster in the latter case. Even if it was originally built for Lua any compiler can generate LuaJIT bytecode.

    Both approaches are lean (Mono about 8 MB, LuaJIT about 1 MB), general purpose, available on many platforms and work well (see e.g. https://github.com/rochus-keller/Oberon/ and https://github.com/rochus-keller/Som/).

  • When is Smalltalk's speed an issue?
    2 projects | /r/smalltalk | 21 Feb 2022
    At the latest when you run a benchmark suite like Are-we-fast-yet; here are some measurment results: http://software.rochus-keller.info/are-we-fast-yet_crystal_lua_node_som_pharo_i386_results_2020-12-29.pdf. See also https://github.com/rochus-keller/Som/ and https://github.com/rochus-keller/Smalltalk.
  • LuaJIT for backend?
    6 projects | /r/ProgrammingLanguages | 2 Jan 2022
    LuaJIT is well suited as a backend/runtime environment for custom languages; I did it several times (see e.g. https://github.com/rochus-keller/Smalltalk, https://github.com/rochus-keller/Som/, https://github.com/rochus-keller/Oberon/). I also implemented a bit of infrastructure to ease the reuse: https://github.com/rochus-keller/LjTools. LuaJIT has some limitations though; if you require closures you have to know that the corresponding LuaJIT FNEW bytecode is not yet supported by the JIT, i.e. switches to the interpreter; as a work-around I implemented my own closures; LuaJIT also doesn't support multi-threading, but co-routines; and there is no debugger, and the infrastructure to implement one has limitations (i.e. performance is low when running to breakpoints). For most of my projects this was no issue. Recently I switched to CIL/Mono for my Oberon+ implementation which was a good move. But still I consider LuaJIT a good choice if you can cope with the mentioned limitations. The major advantage of LuaJIT is the small footprint and impressive performance for dynamic languages.
  • Optimizing an old interpreted language: where to begin?
    3 projects | /r/Compilers | 4 May 2021
    One option is to leverage someone else's JIT: you could, for example, rewrite the interpreter to transpile to Lua source, which is then run in LuaJIT. There's a Smalltalk dialect which does this successfully; the Lua version runs in 1/12th the time of the C interpreted version. https://github.com/rochus-keller/Som You can use LuaJIT's FFI to call back into the Stunt server, or else just rewrite it completely in Lua --- large parts of the Stunt server will just go away in a native Lua implementation (e.g. the object database is just a table). Javascript would be another candidate for this.
  • JITted lang which is faster than C?
    6 projects | /r/ProgrammingLanguages | 12 Feb 2021
    This is a completely different kind of measurement; unfortunately this is not clear enough from my Readme. I wanted to find out, how well my naive Bluebook interpreter performs on LuaJIT (using my virtual meta tracing approach) compared to Cog, which is a dedicatd Smalltalk VM optimized with whatever genious approaches over two decades (or even longer considering the long experience record by Elliot). This experiment continues in https://github.com/rochus-keller/Som, because I didn't want to modify the original Smalltalk image. I found that my naive LuaJIT based approach is about factor seven behind the highly optimized Cog/Spur, and further improvements would require similar optimization tricks as in the latter.

crosstalk

Posts with mentions or reviews of crosstalk. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-26.
  • Making Smalltalk on a Raspberry Pi (2020)
    3 projects | news.ycombinator.com | 26 Aug 2023
    I don't know why this popped up again now, but it's nice to see that some people are still interested in this little Smalltalk 80 system (I'm the author, happy to answer your questions...).

    Code at https://github.com/michaelengel/crosstalk

  • Ask HN: What software stack to select for this boot to code computer?
    5 projects | news.ycombinator.com | 4 Mar 2023
    Your concept looks nice, it reminds me a bit of the Lisperati: https://www.hackster.io/news/the-lisperati1000-is-a-cyberdec...

    So, did you consider Lisp or maybe Smalltalk? Plan 9 or Inferno might also be options.

    Plan 9 comes in different variants, the "classic" one (with a Raspberry Pi port by Richard Miller) or 9front, an Inferno porting tutorial can be found at https://github.com/yshurik/inferno-rpi

    Lisp and Smalltalk can run with or without Linux underneath, e.g. on the Raspberry Pi.

    Bare-metal Lisp is available with interim: http://interim-os.com

    Finally, bare-metal Smalltalk is available in my crosstalk system: https://github.com/michaelengel/crosstalk

    Of course, Lisp and Smalltalk can also run hosted under Linux, e.g. using Squeak (https://squeak.org), Pharo (https://pharo.org) or InterLisp (https://github.com/Interlisp/medley).

    Or - a crazy idea - build an emacs-only machine. That would be fun! :)

  • Smalltalk-80 on Raspberry Pi: A Bare Metal Implementation
    1 project | /r/hypeurls | 1 Jan 2023
    1 project | /r/Boiling_Steam | 1 Jan 2023
    8 projects | news.ycombinator.com | 1 Jan 2023
  • Allwinner D1 Xv6 Port
    2 projects | news.ycombinator.com | 4 Sep 2022
    Author here - this xv6 port to the D1 (based on the riscv64 xv6 version developed at MIT) is an experimentation vehicle for me and my students since working with qemu alone can be a bit boring and it's easier to test some feature in a tiny OS. Of course, it's also fun to work on it...

    "...won't be big and professional like gnu." :)

    Based on the experiences with xv6, we are also working on porting some other non-mainstream systems to RISC-V hardware, including Plan 9, Inferno, Oberon, Smalltalk-80 (see my Raspberry Pi bare metal ARM version at https://github.com/michaelengel/crosstalk) and the f9 microkernel.

    If you have any questions about the xv6 port just ask.

    Shameless plug - I'm looking for a PhD student to work on OS/compiler/architecture-related topics in my research group here at Bamberg University (in the northern part of Bavaria in Germany).

    If you know someone who might be interested, please let them know...

  • On Learning Smalltalk
    5 projects | news.ycombinator.com | 11 Jan 2022
    What if those already-used tools weren't as-good for writing Smalltalk programs?

    ----

    > … its own OS and GUI.

    Well there are examples of bare metal Smalltalk (I'm guessing we could say the same of Java?)

        https://github.com/michaelengel/crosstalk
  • Are there any materials that go through the internals of smalltalk and/or teach you how to implement a smalltalk-like language?
    3 projects | /r/smalltalk | 27 Jun 2021
  • Symbolics Lisp Machine demo Jan 2013
    2 projects | news.ycombinator.com | 27 Apr 2021
    Well, you can run a bare metal Smalltalk-80 on the Raspberry Pi.

    https://github.com/michaelengel/crosstalk

  • I bought 200 Raspberry Pi Model B’s and I’m going to fix them
    1 project | news.ycombinator.com | 23 Jan 2021
    - NetBSD (https://wiki.netbsd.org/ports/evbarm/raspberry_pi/)

    - FreeBSD (https://wiki.freebsd.org/arm/Raspberry%20Pi)

    - Interim Lisp OS (http://interim-os.com - this runs on Raspi 2 only, so porting to the ARM v6 in the Raspi 1 would be a nice project) - btw., this is a project by Lukas Hartmann, who is also the creator of the open MNT Reform ARM laptop (https://mntre.com)

    - (shameless plug) my bare metal "crosstalk" Smalltalk-80 (https://github.com/michaelengel/crosstalk)

    I'm pretty sure this list isn't complete...

    Some operating systems are not supported at the moment:

    - OpenBSD only seems to support the Aarch64-based models 3 and 4

    - Haiku seems to be looking for a maintainer for the Raspberry port

What are some alternatives?

When comparing Som and crosstalk you can also consider the following projects:

Smalltalk - Parser, code model, interpreter and navigable browser for the original Xerox Smalltalk-80 v2 sources and virtual image file

Smalltalk - By the Bluebook implementation of Smalltalk-80

rockstar - Makes you a Rockstar C++ Programmer in 2 minutes

medley - The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)

qbe-rs - QBE IR in natural Rust data structures

xv6-d1 - Port of MIT's xv6 OS to the Nezha RISC-V board with Allwinner D1 SoC

ubpf - Userspace eBPF VM

littlesmalltalk - Archive of Little Smalltalk (with updates to work on modern platforms). Also collects forks and documentation on this historic system.

sljit - Platform independent low-level JIT compiler

pharoRaylib - Pharo Smalltalk bindings for Raylib game library

Oberon - Oberon parser, code model & browser, compiler and IDE with debugger

SOM - SOM - Simple Object Machine