[Cuis-dev] UK Smalltalk User Group Meeting - Wednesday, December 29th

Juan Vuletich JuanVuletich at zoho.com
Tue Dec 14 06:50:20 PST 2021


On 12/9/2021 7:10 PM, Giovanni Corriga via Cuis-dev wrote:
> For our December meeting, Florin Mateoc will show us JsSqueak ( 
> https://github.com/fmateoc/JsSqueak ), a JavaScript implementation of 
> (JavaScript compiled) Squeak.
>
> Whereas SqueakJS or TruffleSqueak are implementations of the Squeak 
> stack VM which run the Squeak bytecodes, JsSqueak compiles all the 
> Squeak code to JavaScript (including the VM plugins), it exports the 
> image state as one big JavaScript storeString, and then loads them, 
> and runs the JavaScript implemented minimal VM (mostly primitives) and 
> the JavaScript-translated Squeak methods as one combined JavaScript 
> application. The compiled JavaScript application can be run either in 
> a browser or in Node.js
>
> While JavaScript, especially with its newest additions, is a very 
> powerful language, which allows us to implement most 
> Smalltalk-specific features (e.g. processes/green threads are 
> implemented using generator functions and recursive yield* for all 
> invocations, DNU is implemented using proxies and proto manipulation, 
> the Smalltalk parallel class hierarchy is implemented using JavaScript 
> classes with static properties and their parallel prototypes 
> hierarchy, weak classes are implemented using JavaScript WeakRef 
> instances in their (weak) slots), one obvious challenge is 
> implementing contexts.
> Since we compile Squeak classes to JavaScript classes, Squeak methods 
> to JavaScript methods (and class-side Squeak methods to static 
> JavaScript methods), the code runs on the native JavaScript call 
> stack, and we do not have a mapping between the JavaScript function 
> activations and reified contexts. Nevertheless, it turns out that, by 
> providing specialized implementations for various aspects that are 
> implemented using contexts/stack walking in Squeak, we can actually 
> run almost all Squeak code as-is.
>
> Florin Mateoc ( https://fmateoc.js.org/ ) is an electronics engineer 
> who has always loved programming and who has actually only ever worked 
> as a software engineer.
> Florin has worked as a professional Smalltalk programmer in Enfin 
> (later called ObjectStudio), VisualAge, VisualWorks, and a little bit 
> as a hobbyist in Squeak.
>
> This will be an online meeting from home.
>
> If you'd like to join us, please sign up in advance on the meeting's 
> Meetup page ( https://www.meetup.com/UKSTUG/events/282445345/ ) to 
> receive the meeting details. Don’t forget to bring your laptop and drinks!

Interesting! It is always great to have options. I'd like to see if/how 
it can run Cuis!

I'll be there.

Thanks,

-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.researchgate.net/profile/Juan-Vuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich



More information about the Cuis-dev mailing list