Slang definition?

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

Slang definition?

Laurent Julliard
 
Hi everyone,

Is there some place I can find a document describing what subset of Smalltalk is supported in Slang in its current state?

Thank you.

Laurent
Reply | Threaded
Open this post in threaded view
|

Re: Slang definition?

Nicolas Cellier
 
Hi,
I doubt there is a formal specification. i rather see it as very ad hoc.
For retro-engineering purposes, one good starting point for getting an overview is:
CCodeGenerator >> #initializeCTranslationDictionary

Le mar. 15 oct. 2019 à 20:10, Laurent Julliard <[hidden email]> a écrit :
 
Hi everyone,

Is there some place I can find a document describing what subset of Smalltalk is supported in Slang in its current state?

Thank you.

Laurent
Reply | Threaded
Open this post in threaded view
|

Re: Slang definition?

Ron Teitelbaum
In reply to this post by Laurent Julliard
 
Hi Laurent,

I'm no expert in Slang or how much Smalltalk you can use in your slang code. Did you see this: http://wiki.squeak.org/squeak/slang 

Note it says:  The methods in classes such as Interpreter or SlangTests are the best sources to learn about Slang code.  

The examples might make it obvious how much Smalltalk you can use.

All the best,

Ron Teitelbaum


On Tue, Oct 15, 2019 at 2:09 PM Laurent Julliard <[hidden email]> wrote:
 
Hi everyone,

Is there some place I can find a document describing what subset of Smalltalk is supported in Slang in its current state?

Thank you.

Laurent
Reply | Threaded
Open this post in threaded view
|

Re: Slang definition?

Eliot Miranda-2
In reply to this post by Laurent Julliard
 
Hi Laurent,

On Tue, Oct 15, 2019 at 11:10 AM Laurent Julliard <[hidden email]> wrote:
 
Hi everyone,

Is there some place I can find a document describing what subset of Smalltalk is supported in Slang in its current state?

As others have said there isn't a formal definition. It's also a moving target.  I had to add significant type inference facilities to be able to express both a 64-bit and a 32-bit VM with the same set of sources.  I've also extended it to support literal block arguments to a limited extent.  One can't enumerate over objects, but one can supply blocks to iterators.

I'm curious what you want to use Slang for.  Answering this might help Slang users/maintainers/extenders to help you.
 
Thank you.

Laurent

_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: Slang definition?

Laurent Julliard
 
Hi all,

Thank you for your answers. yes I read the http://wiki.squeak.org/squeak/slang page but suspected that may be changes had been made to Slang over time. Whic Eliot confirmed.

Actually I'm not thinking of using Slang directly. I'm on a personal project right to write a VM in Web Assembly to run Ruby. And rather than writing the VM in WebAssembly directly i'd rather write it in Rlang (equivalent of Slang for Ruby) and transpile to WebAssembly (WAT format).

So I'm trying to understand all the features that you had to support in Slang to make writing a VM possible/easier.

Does that help ?

Laurent

On Wed, Oct 16, 2019 at 4:00 AM Eliot Miranda <[hidden email]> wrote:
 
Hi Laurent,

On Tue, Oct 15, 2019 at 11:10 AM Laurent Julliard <[hidden email]> wrote:
 
Hi everyone,

Is there some place I can find a document describing what subset of Smalltalk is supported in Slang in its current state?

As others have said there isn't a formal definition. It's also a moving target.  I had to add significant type inference facilities to be able to express both a 64-bit and a 32-bit VM with the same set of sources.  I've also extended it to support literal block arguments to a limited extent.  One can't enumerate over objects, but one can supply blocks to iterators.

I'm curious what you want to use Slang for.  Answering this might help Slang users/maintainers/extenders to help you.
 
Thank you.

Laurent

_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: Slang definition?

Eliot Miranda-2
 
Hi Laurent,

On Tue, Oct 15, 2019 at 11:45 PM Laurent Julliard <[hidden email]> wrote:
 
Hi all,

Thank you for your answers. yes I read the http://wiki.squeak.org/squeak/slang page but suspected that may be changes had been made to Slang over time. Whic Eliot confirmed.

Actually I'm not thinking of using Slang directly. I'm on a personal project right to write a VM in Web Assembly to run Ruby. And rather than writing the VM in WebAssembly directly i'd rather write it in Rlang (equivalent of Slang for Ruby) and transpile to WebAssembly (WAT format).

So I'm trying to understand all the features that you had to support in Slang to make writing a VM possible/easier.

It's a lot more than just Slang, although something like Sang is an essential enabler; necessary but not sufficient :-).  The best overview we have for our development process is here, in the 2018 section of https://squeak.org/research/.

Eliot Miranda, Clément Béra, Elisa Gonzalez Boix, and Dan Ingalls. “Two Decades of Smalltalk VM Development: Live VM Development Through Simulation Tools.” In Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages, 57–66. VMIL 2018. New York, NY, USA: ACM, 2018. http://doi.acm.org/10.1145/3281287.3281295. [BibTeX] 

Does that help ?

yes.  I hope that the paper above helps.  LMK...
 

Laurent

On Wed, Oct 16, 2019 at 4:00 AM Eliot Miranda <[hidden email]> wrote:
 
Hi Laurent,

On Tue, Oct 15, 2019 at 11:10 AM Laurent Julliard <[hidden email]> wrote:
 
Hi everyone,

Is there some place I can find a document describing what subset of Smalltalk is supported in Slang in its current state?

As others have said there isn't a formal definition. It's also a moving target.  I had to add significant type inference facilities to be able to express both a 64-bit and a 32-bit VM with the same set of sources.  I've also extended it to support literal block arguments to a limited extent.  One can't enumerate over objects, but one can supply blocks to iterators.

I'm curious what you want to use Slang for.  Answering this might help Slang users/maintainers/extenders to help you.
 
Thank you.

Laurent

_,,,^..^,,,_
best, Eliot


--
_,,,^..^,,,_
best, Eliot