[Cuis-dev] Bee Smalltalk Dynamic Metacirculat Runtime [WAS Re: Cuis 68000 64bit V3 image ?]

Boris Shingarov Shingarov at labware.com
Sun Apr 25 12:58:34 PDT 2021


Hi Ken,

It's really exciting that someone wants to try tris!

> a way to bootstrap an image from
> source, a la Little Smalltalk or GNU Smalltalk.
> Custom mini images for specialised purposed would be handy too.

I think it would have many more far-going implications than just
bootstrapping a given Smalltalk from source, or mini-images.

For example, for me one of defining characteristics of Smalltalk
(note the absence of the "-80" suffix!) is enabling to experiment
with the most fundamental concepts: one might want to experiment
around questions such as -- say -- "what does it mean for an object
to belong to a class?"  Different Smalltalk-80 implementations today
give different answers; in some (e.g., VisualWorks or Cuis/Pharo/...)
an object belongs to a class via species-membership and then it's the
class that defines the object's behavior.  In others (e.g. Bee or
Smalltalk/V) an object has a behavior, and it is part of that
behavior that the object can answer "what species do you belong to?"
But in every particular dialect this is set in stone, i.e. in a live
running Cuis I can't change to the ST/V-style class-membership.
Another example would be "what's an object".  In Smalltalk-80 we have
object state composed as product of constituent object states (those
things pointed to by the instance variables (or whatever variations
if it's #variableByteSubclass or something)), and then co-products of
subclasses, i.e. on message send the VM does case-analysis of the
co-multiplicands.  In my view, the permanent-fixation of this schema
is diametrically contrary to the original spirit of Smalltalk; it
basically says: the Creators gave you this complex schema and now
your job is to follow the Gospel.  In contrast, Smalltalk is about
*everyone* is enabled to Create.

So the reason I find Powerlang interesting is that it's about the
ability to quickly construct any Smalltalk -- a Cuis, a Bee, or a
Smalltalk-71, or something else.

> Not quite there yet, and x86 only

Actually, there are three runtimes.  The x86 you are talking about,
is the legacy JIT inherited from Aucerna.  In Neuquen we also
demonstrated an early prototype running on RISC-V:

https://www.youtube.com/watch?v=2Un2r03R0Xo

Then there is the third runtime which Pocho and I showed how to
prototype it on ARM (using a RPi) at the VM Hackathon:

https://www.youtube.com/watch?v=ZWPMBSvYrs8

There is a lot of activity around it.  The idea is to merge the best
aspects of DMR and Cog into a sort of "unified meta-VM"; there has
been a lot of discussion about it in the VM Hackathon.

>  _my_ overall goals are [1] reproduce Bee bootstrap in Cuis
> to understand how they did it, [2] do ARM64/RISC-V:64G port,
> [3] graft Cuis on top

In these past few months Jan has made much progress disentangling
the Pharo-specific bits out of it.  This is important because of the
people who are interested in actively contributing, some like Squeak
and some Smalltalk/X and some Pharo.  Your Cuis perspective is most
welcome and appreciated!

I am sure Pocho and Jan will chime in with more comments.

Boris


-----"Cuis-dev" <cuis-dev-bounces at lists.cuis.st> wrote: -----
To: "Discussion of Cuis Smalltalk" <cuis-dev at lists.cuis.st>
From: "ken.dickey--- via Cuis-dev" 
Sent by: "Cuis-dev" 
Date: 04/23/2021 06:54PM
Cc: ken.dickey at whidbey.com, "Douglas Brebner" <kirtai+st at gmail.com>
Subject: [Cuis-dev] Bee Smalltalk Dynamic Metacirculat Runtime [WAS Re: Cuis 68000 64bit V3 image ?]

On 2021-04-23 07:22, Douglas Brebner via Cuis-dev wrote:

> What I've wanted for a while is a way to bootstrap an image from
> source, a la Little Smalltalk or GNU Smalltalk.
...
> Custom mini images for specialised purposed would be handy too.

Not quite there yet, and x86 only, but check out Bee Smalltalk:

  https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_powerlang_powerlang&d=DwICAg&c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&r=ecC5uu6ubGhPt6qQ8xWcSQh1QUJ8B1-CG4B9kRM0nd4&m=oSdy2FWvoHxKMwqWLMeyqC_7oLkmOq92i19sgfjtpLs&s=Z9dtOzu_MBbFtonzfcvxU15tMEHXUxp0VS4XPUaGfUg&e= 

Just started a port to Cuis, so don't look at the code, but the 
README.md has pointers to essential docs:

  https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_KenDickey_BeeYourself&d=DwICAg&c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&r=ecC5uu6ubGhPt6qQ8xWcSQh1QUJ8B1-CG4B9kRM0nd4&m=oSdy2FWvoHxKMwqWLMeyqC_7oLkmOq92i19sgfjtpLs&s=mqdNSVAH4vM3KLzRAgfctfy_iJGNilCsHdUbOREdMbQ&e= 

A Pharo bootstrap exists.

Very promising first steps, IMHO.

I am very slow, but _my_ overall goals are [1] reproduce Bee bootstrap 
in Cuis to understand how they did it, [2] do ARM64/RISC-V:64G port, [3] 
graft Cuis on top.

Huge job. Tons of code to go through. I have a busy life and may not 
live to see it through, but darn, is it ever interesting! :)

Cheers,
-KenD

-- 
Cuis-dev mailing list
Cuis-dev at lists.cuis.st
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.cuis.st_mailman_listinfo_cuis-2Ddev&d=DwICAg&c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&r=ecC5uu6ubGhPt6qQ8xWcSQh1QUJ8B1-CG4B9kRM0nd4&m=oSdy2FWvoHxKMwqWLMeyqC_7oLkmOq92i19sgfjtpLs&s=O3kMegVnuc1YvS2TT4s9Kql8ptT5pg48NwJHCplmL7A&e= 


More information about the Cuis-dev mailing list