[ANN] SqueakJS 1.0

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] SqueakJS 1.0

codefrau
 
Hi All,

yesterday I released version 1.0 of SqueakJS, exactly 7 years after my first public announcement on December 20, 2013.


Arguably I should have done this back in 2016 when it could run Spur images. What got it over the last hump was Fabio's interpreter for Sista bytecodes and Erik's refactoring for Node.js.

SqueakJS is now the most compatible Squeak VM: it can run pre-release images from 1996 as well as the latest Squeak 6.0 trunk image.

For production, you should still use non-Sista images, because no JIT has been implemented yet.

A big Thank You to all the contributors over the years, and to Dan Ingalls for the inspiration, and funding the initial development. 

There are still many things to work on:

- a simple JIT for Sista bytecode to bring its speed at least up to par with its pre-Sista speed
- a "real" JIT with context mapping (keeping temps in JS vars rather than on the stack) and send optimizations (mapping sends to JS function invocations)
- 64 bit support for pre-Spur images
- big-endian support for 64 bit images

Help is very welcome at https://github.com/codefrau/SqueakJS

Happy Holidays to Everyone!
Vanessa
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

Eliot Miranda-2
 


_,,,^..^,,,_ (phone)

On Dec 21, 2020, at 9:32 PM, Vanessa Freudenberg <[hidden email]> wrote:


Hi All,

yesterday I released version 1.0 of SqueakJS, exactly 7 years after my first public announcement on December 20, 2013.


Arguably I should have done this back in 2016 when it could run Spur images. What got it over the last hump was Fabio's interpreter for Sista bytecodes and Erik's refactoring for Node.js.

SqueakJS is now the most compatible Squeak VM: it can run pre-release images from 1996 as well as the latest Squeak 6.0 trunk image.

Congrats, Vanessa; cool work.  Please see my reply to your System-codefrau.1205.mcz commit.


For production, you should still use non-Sista images, because no JIT has been implemented yet.

A big Thank You to all the contributors over the years, and to Dan Ingalls for the inspiration, and funding the initial development. 

There are still many things to work on:

- a simple JIT for Sista bytecode to bring its speed at least up to par with its pre-Sista speed
- a "real" JIT with context mapping (keeping temps in JS vars rather than on the stack) and send optimizations (mapping sends to JS function invocations)
- 64 bit support for pre-Spur images
- big-endian support for 64 bit images

Help is very welcome at https://github.com/codefrau/SqueakJS

We have an effort crisis with the execution machinery.  You are asking did help. I am asking for help.  We have at least four different Squeak vm efforts.  Little mutual support.  Little community involvement.  Nothing new, but I do find this a serious problem. Thank you for tolerating my gloom in this holiday season.

Happy Holidays to Everyone!
Vanessa
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

David T. Lewis
In reply to this post by codefrau
 
Vanessa,

On Mon, Dec 21, 2020 at 09:32:03PM -0800, Vanessa Freudenberg wrote:
>  
> Hi All,
>
> yesterday I released version 1.0 of SqueakJS, exactly 7 years after my
> first public announcement on December 20, 2013.
>
> https://squeak.js.org/
>

What a nice surprise for the holidays. Thank you!!!



> Arguably I should have done this back in 2016 when it could run Spur
> images. What got it over the last hump was Fabio's interpreter for Sista
> bytecodes and Erik's refactoring for Node.js.
>
> SqueakJS is now the most compatible Squeak VM: it can run pre-release
> images from 1996 as well as the latest Squeak 6.0 trunk image.
>
> For production, you should still use non-Sista images, because no JIT has
> been implemented yet.
>

Shortcuts for switching back and forth in a trunk image:

    CompiledCode useSista: true

    CompiledCode useSista: false


Dave


> A big Thank You to all the contributors over the years, and to Dan Ingalls
> for the inspiration, and funding the initial development.
>
> There are still many things to work on:
>
> - a simple JIT for Sista bytecode to bring its speed at least up to par
> with its pre-Sista speed
> - a "real" JIT with context mapping (keeping temps in JS vars rather than
> on the stack) and send optimizations (mapping sends to JS function
> invocations)
> - 64 bit support for pre-Spur images
> - big-endian support for 64 bit images
>
> Help is very welcome at https://github.com/codefrau/SqueakJS
>
> Happy Holidays to Everyone!
> Vanessa

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

David T. Lewis
In reply to this post by Eliot Miranda-2
 
On Tue, Dec 22, 2020 at 12:41:05AM -0800, Eliot Miranda wrote:
> >
> > Help is very welcome at https://github.com/codefrau/SqueakJS
>
> We have an effort crisis with the execution machinery.  You are asking
> did help. I am asking for help.  We have at least four different Squeak
> vm efforts.  Little mutual support.  Little community involvement.  Nothing
> new, but I do find this a serious problem.

I would prefer to think that the glass is half full. Maybe we don't have
enough people, but I believe that the various efforts are complimentary.
It is quite remarkable to see the results as various projects push the
limits of extreme performance and extreme portability.

The only thing that makes me sad about this is that we do not have a
way to pursue the Sista/Scorch opportunities. I understand this topic
just barely enough to recognize that it is innovative and important.
I don't have any competence in the area at all, but I really do hope
that more can be done to move these ideas forward.

>
> Thank you for tolerating my gloom in this holiday season.
>

Gloom is something of a holiday tradtion ;-)

Dave

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

Craig Latta
In reply to this post by Eliot Miranda-2
 

Hi Eliot--

 > We have at least four different Squeak vm efforts.

      I think JS is a significant platform which, for now, doesn't fit
the concept of platform, execution artifact, and how that artifact is
built that we use with the other platforms. (I'm keen to make things
converge a bit with WebAssembly.) It's a worthy additional front, even
though the other fronts are understaffed. And JS is significant for both
the reach it gives our applications, and the large audience of
developers we can interest in JS/Smalltalk hybrids.

 > We have an effort crisis with the execution machinery. You are asking
 > for help. I am asking for help... Little mutual support.

      What additional mutual support do you think there could be?

 > Little community involvement.

      I can't let that pass without noting that I'm involved and
enthusiastic. :)

 > Nothing new, but I do find this a serious problem. Thank you for
 > tolerating my gloom in this holiday season.

      It's okay, let's turn that gloom into a plan!


-C

--
Craig Latta :: research computer scientist
Black Page Digital :: Berkeley, California
663137D7940BF5C0AFC  1349FB2ADA32C4D5314CE

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

codefrau
In reply to this post by Eliot Miranda-2
 
On Tue, Dec 22, 2020 at 12:41 AM Eliot Miranda <[hidden email]> wrote:

We have an effort crisis with the execution machinery.  You are asking did help. I am asking for help.  We have at least four different Squeak vm efforts.  Little mutual support.  Little community involvement.  Nothing new, but I do find this a serious problem. Thank you for tolerating my gloom in this holiday season.
 
It's not a zero-sum game, and there's no one-size-fits-all. People are passionate about different things, especially if they do it in their spare time.

The people helping me with the JavaScript stuff are not the same people interested in working on the main VM. And sometimes there is mutual support, like when Fabio implemented Sista bytecodes and FullClosures for SqueakJS right after he had done it in Java for TruffleSqueak.

So, cheers to a diverse community! 
❤️🧡💛💚💙💜🤎🖤

Vanessa
 
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

Craig Latta
 

      (tangent)

 > The people helping me with the JavaScript stuff are not the same
 > people interested in working on the main VM.

      Must raise my hand again here... I'm an exception. I want to be
able to demo my apps on all platforms, and teach the audience how to
maintain the whole thing. Also, my apps use features that require me to
dig into the VM on all platforms (e.g., remote messaging and
instrumented garbage collection).


-C

--
Craig Latta :: research computer scientist
Black Page Digital :: Berkeley, California
663137D7940BF5C0AFC  1349FB2ADA32C4D5314CE


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] SqueakJS 1.0

codefrau
 
On Tue, Dec 22, 2020 at 4:53 PM Craig Latta <[hidden email]> wrote:
 
      (tangent)

 > The people helping me with the JavaScript stuff are not the same
 > people interested in working on the main VM.

      Must raise my hand again here... I'm an exception. I want to be
able to demo my apps on all platforms, and teach the audience how to
maintain the whole thing. Also, my apps use features that require me to
dig into the VM on all platforms (e.g., remote messaging and
instrumented garbage collection).

Which is awesome! As I wrote, "sometimes there is mutual support" :)

Vanessa