[HN Gopher] Smalltalk-80 on Raspberry Pi: A bare metal implement...
___________________________________________________________________
Smalltalk-80 on Raspberry Pi: A bare metal implementation
Author : baptiste313
Score : 114 points
Date : 2023-01-01 17:56 UTC (5 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| johndoe0815 wrote:
| Author here, feel free to ask any questions you have :).
|
| It's amazing this little project shows up again here. So far, I
| received a lot of very positive and friendly feedback about this
| little pet project of mine.
|
| The whole project would not have been possible without the work
| of Rene Stange, who created the circle bare-metal library for the
| Raspberry Pi (https://github.com/rsta2) and Dan Banay, who
| created a C++ implementation of the Smalltalk-80 VM
| (https://github.com/dbanay/Smalltalk). I mostly hacked together
| some glue code...
|
| If you want to dig deeper, the Blue Book by Adele Goldberg and
| David Robson (scan provided by Stephane Ducasse, thanks a lot!)
| is _the_ reference on both the language and the structure and
| implementation of the underlying bytecode VM:
| http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook....
|
| Beware, though it's fully functional, crosstalk is still limited
| by constraints of the original Smalltalk 80 system - e.g. in
| terms of color (black and white only), possible screen resolution
| (2^20 pixels, the system crashes if you try to increase the
| resolution beyond this) and available memory (~1 MB!).
|
| Nevertheless, I think it's a rather authentic reproduction of a
| more than 40 year old system and I learned (in a comment thread
| on a completely different topic) that one of our fellow
| hackernews regulars used it to teach his kid Smalltalk
| programming - love it! I haven't tried to optimize it
| significantly, so there's no JIT compiler or bitblit acceleration
| using the Raspberry Pi GPU.
|
| There's a more modern bare-metal Smalltalk implementation based
| on Squeak (https://squeak.org) for the Raspberry Pi by Pablo
| Marx, though this seems to have some stability problems according
| to the author: https://github.com/pablomarx/RaspberrySqueak
|
| Finally, if you are interested in alternative bare-metal
| language/OS environments for the Raspberry Pi, you could also
| give Lukas Hartmann's (of MNT Reform notebook fame) Interim OS a
| try: http://interim-os.com
| b33j0r wrote:
| I'm baffled that I never saw the name Alan Kay.
|
| Given, I did not read everything. Expected it to be in bright
| lights, based on the story I was told ;)
|
| (That's my malformed question)
| johndoe0815 wrote:
| There are a lot of famous persons involved in the history of
| Smalltalk, without who we would have nothing to write about
| here.
|
| Alan Kay was certainly the driving force, but let's not
| forget Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry,
| Scott Wallace, and Peter Deutsch (who is also the founder of
| Aladdin Enterprises and creator of Ghostscript) - and all
| others I forgot to mention here...
|
| One other very important person related to this endeavor is
| Mario Wolczko, who ported Smalltalk 80 to the Perq
| workstation (his master thesis at Manchester University) and
| extracted and distributed the Smalltalk 80 VM image - see
| http://www.wolczko.com/st80/. Later, Mario worked on the SELF
| language (and many other projects, of course) at Sun Labs.
| dang wrote:
| Related:
|
| _Bare metal Smalltalk-80 port to the Raspberry Pi_ -
| https://news.ycombinator.com/item?id=23874206 - July 2020 (63
| comments)
|
| _Ask HN: Automated SW testing on different Raspberry Pi models?_
| - https://news.ycombinator.com/item?id=23806323 - July 2020 (1
| comment)
| johndoe0815 wrote:
| Thanks for the links dang!
|
| I still haven't managed to set up the automated test
| environment on different Raspberry Pi models, this might be an
| interesting project for one of my students...
| 0x445442 wrote:
| I love ST the language, I like ST the image but I hate the tight
| coupling to the antiquated UI. I know there's GNU ST but I wish
| there were more options. I also wonder how difficult it would be
| to create a modern IDE integration with GNU ST with something
| like IntelliJ, Eclipse, Net Beans or VS Code.
| narutowindy wrote:
| Someone explain what's smalltalk?
| marvel_boy wrote:
| Really it is a shame that lots of people on tech have never
| hear of Smalltak. It is in my humble opinion the most
| influential language ever created. Ask anyone who played with
| Smalltak in the 80's and they will say the same: "I never ever
| will have the sensation of power and confidence that Smalltak
| provided".
| layer8 wrote:
| I think "most influential" is debatable. In the space of OO
| languages that found widespread adoption, more seem to be
| influenced by the Simula-C++ lineage (notwithstanding
| counterexamples like Objective-C and Ruby).
| glacials wrote:
| I find an sample of Smalltalk is one of the most interesting
| ways to see how it flows as a language, as its grammar almost
| reads like English. From Wikipedia [1], this is a piece of
| Smalltalk code:
|
| > 3 factorial + 4 factorial > between: 10 and: 100
|
| which means:
|
| > 3 receives the message "factorial" and answers 6 > 4 receives
| the message "factorial" and answers 24 > 6 receives the message
| "+" with 24 as the argument and answers 30 > 30 receives the
| message "between:and:" with 10 and 100 as arguments and answers
| true
|
| [1]: https://en.wikipedia.org/wiki/Smalltalk
| worik wrote:
| > as its grammar almost reads like English.
|
| Really? How different our interpretations can be, that is
| incredibly opaque too me. Even reading your explanation I do
| not understand it.
|
| Horses for courses, I guess
| johndoe0815 wrote:
| Smalltalk is a programming language (+runtime, GUI, development
| environment) that originated at the Xerox PARC research center
| in the early 1970s on the Alto computer. Smalltalk was one of
| the first object-oriented systems (along with the Norwegian
| Simula system), it differs from Simula/C++-style OO due to
| using dynamic dispatch (late binding), i.e., selecting which
| implementation of a polymorphic operation (method or function)
| to call at run time instead of at compile time.
|
| It had significant influence on the development of the personal
| computer. Projects at Apple (Lisa/Mac) and Microsoft (Windows)
| were influenced by the Smalltalk GUI and Smalltalk was also the
| basis for Objective C, the language behind the NeXT/MacOS/iOS
| UI frameworks - now on the way to be supplanted by Swift.
|
| More details, as usual, on Wikipedia:
| https://en.wikipedia.org/wiki/Smalltalk
| JKCalhoun wrote:
| I knew _of_ Smalltalk but was unaware it was 1) byte code
| rather than compiled and 2) it influences Objective C. Very
| cool.
|
| Seeing also Pascal, Modula, Forth, Prolog... The 70's were an
| innovative era for programming languages. https://en.wikipedi
| a.org/wiki/Timeline_of_programming_langua...
| pinewurst wrote:
| It also introduced (in its later ParcPlace form) the idea
| of JITing interpretive languages.
| daitangio wrote:
| Also, this Java implementation is nice
| https://github.com/victorr/jsqueak
|
| Look at Squeak Smalltalk for further enhancements
| pulse7 wrote:
| Any screenshots?
| slim wrote:
| it's based on this
|
| https://github.com/dbanay/Smalltalk
|
| (there's one screenshot there)
| wrycoder wrote:
| From 2020:
|
| https://news.ycombinator.com/item?id=23307700
| johndoe0815 wrote:
| See my blog entries here (beware, something about the
| certificate for the web server is broken right now, will try to
| fix it right away):
|
| https://www.multicores.org/blog/tag_Smalltalk.html
| layer8 wrote:
| The problem is that the certificate is issued for
| _multicores.org_ , but not for _www.multicores.org_. Removing
| the "www." from the URL makes it work. You need to have the
| certificate issued for all subdomains you want to use it for
| (or for a wildcard subdomain).
| johndoe0815 wrote:
| Uh, good catch, thanks - that explains it!
| slim wrote:
| nothing is wrong with your certificate, it's just self signed
| and browsers don't support that correctly. They just show the
| same unsecure usual message.
| johndoe0815 wrote:
| Thanks for the feedback!
|
| You're correct, but I seem to remember that I configured a
| letsencrypt certificate for nginx, which should be
| recognized as fully verified as far as I know.
| AlbertoGP wrote:
| Well, right now I'm getting a self-signed certificate
| with a validity of one year, not the letsencrypt one.
| Issuer name Country: de Organization:
| multicores Email Address: engel@multicores.org
___________________________________________________________________
(page generated 2023-01-01 23:00 UTC)