Hacker News new | past | comments | ask | show | jobs | submit login

Author here - happy to answer your questions...

Beware, there's a bug on ARM11-based Raspberry Pis (BCM2835 on Pi 1/Zero/Zero W and CM1) that crashes the VM when executing drawing functions. I'm currently investigating the problem.




FYI, your commits are signed with "Your Name <you@example.com>". You'll want to fix your git config. For these existing commits, you can use git-filter-repo [0] to rewrite the author name and email.

    git filter-repo --force --name-callback 'return b"Name to use"' --email-callback 'return b"emailtouse@example.com"'

[0]: https://github.com/newren/git-filter-repo


Oops, good catch - thanks!


Btw., you can read a bit about the background of Smalltalk and the Raspberry port in my article:

https://www.linkedin.com/pulse/relive-part-xerox-parcs-histo...


I wonder why it doesn't work in Raspberry Pi 4 with 8 GB. What (you think) does it make the difference with the 4 GB?


It seems to be a problem with the USB controller driver in circle. Startup hangs with the message "XHCI: HW reset failed".

I was under the impression that the hardware of the 8GB Raspberry Pi 4 was identical to the versions with less memory except for (obviously) the memory chip and some fixes for USB-C power delivery. Maybe it's a subtle timing problem - another item on my to-do list...


I just started a small 8GB RPi 4 cluster and had similar assumptions. Did you happen to try out the beta 64 bit os?


Not yet, sorry - I'm still running 32 bit Raspbian.


I'll have to give this a try on my Raspberry Pi 4 4GB. I've setup Ubuntu, Arch, Kali, Raspbian, and Raspberry Pi OS on my Pis, but this'll certainly be the most exotic, given that it's not Linux. Do you know of any bare metal Forth- or Lisp-based systems for RPi?


There's the Interim OS project [1] (already discussed in another comment here) as a bare-metal Lisp and it might be interesting to port Movitz [2], a bare-metal Lisp project for x86 that seems to be abandoned for quite some time now.

There also seems to be a bare metal Forth implementation, pijFORTHos [3], but I haven't played around with that one so far.

[1] http://interim-os.com/ [2] https://en.wikipedia.org/wiki/Movitz [3] https://github.com/organix/pijFORTHos


Instead of Movitz, go for Mezzano [1], which is much more complete

[1] https://github.com/froggey/Mezzano


Thanks for the link, didn't know about this project. That looks quite impressive and it seems there is already some support for Aarch64.

A modern Lisp machine certainly would be nice...


to what extent is this Smalltalk all the way down ? Can I replace the drivers with Smalltalk code ?


Not in the current version, here the drivers are implemented in C/C++ in the circle bare-metal library [1].

In general, I think Smalltalk is not that well suited as a systems programming language since garbage collection might mess with your timing and you would also need to find a way to handle asynchronous events (such as interrupts).

Nevertheless, Smalltalk has been used for low-level control of robots, e.g. in NXTalk [2] for the Mindstorms NXT ARM7 platform. However, the VM also relied on C code (the LegOS project) for driver code.

[1] https://github.com/organix/pijFORTHos [2] https://www.hpi.uni-potsdam.de/hirschfeld/projects/nxtalk/in...


There is an almost all-Smalltalk bare metal system for X86, CogNOS. It runs on top of NopSys, about 3500 lines of C and 600 lines of assembler for booting, accessing device registers, and responding to interrupts. But the file system etc. are in Smalltalk.

https://github.com/nopsys/CogNOS

https://charig.github.io/assets/papers/SCDE-DLS.pdf


Do you know anything about the status of this project? I started following it on Github a couple of years ago when it appeared but it does not seem like anyone is working on it


I don't know anything about it other than what is in those two links.


This is very cool, thank you.

Smalltalk is my favorite language that I will never ship a product in. :-/


It’s interesting that the 8GB Pi4 won’t work, but the 4GB version will. Any clues as to why? I would assume that they are the same, just with more memory.

Edit: Oh, someone else asked that question




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: