[ANN] Live type information for Smalltalk

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

[ANN] Live type information for Smalltalk

hernan.wilkinson
Hi all!,
I wanted to let you know that I have implemented a "feature" to have type information "live". Currently it is implemented on Cuis but the idea is to port it to Pharo and Squeak as well.
This feature is based on a few changes on the VM that collects the class of the object assigned to a variable, a parameter or when returning from a method. That information is available from the image and allows to improve the tools radically, like the autocompletion on the browser, looking for senders/implementors and even "scoping" the refactorings based on the type info.

I presented it at the last Smalltalks (the argentinean smalltalk conference) and I'm happy to announce its alpha version (1/1000) asFloat :-)

Here is a link to the repo that has the VM and a Cuis image to play with it: https://github.com/hernanwilkinson/Cuis-Smalltalk-DynamicTypeInformation
It also has the source of the VM's changes if you want to see how it is implemented. Currently it is implemented only in the stack VM and the VMs I compiled and uploaded to the repo are 64 bits for MacOs and Linux. (I don't have a Windows machine to compile it :-) )

Here is a link to a video that shows how it is implemented and how to use it: https://t.co/n8FQuo7pKZ

If you want to see the slides of the presentation, here is the link: https://www.slideshare.net/hernanwilkinson/dynamic-type-information

I would love for you to try it and get feedback, ideas, etc.
I really believe it is a "killer feature", something that could take Smalltalk one step further and show the way to other dynamically typed languages.

Cheers!
Hernan

--
Hernán Wilkinson
Agile Software Development, Teaching & Coaching
Phone: +54 - 011 - 6091 - 3125
Mobile: +54 - 911 - 4470 - 7207
email: [hidden email]
site: http://www.10Pines.com
Address: Alem 693, Floor 5 B, Buenos Aires, Argentina


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Live type information for Smalltalk

Jecel Assumpcao Jr
Hernan,

this is a great project and the slides are very nice as well.

One small typo on slide 65: "Feeling: When you start using it, you don't
want to loose it"

Actually you do, since "loose it" is kind of like "release it" or
"unleash it". What you most certainly don't want to do is "lose" it.

Anyway, congratulations!
-- Jecel

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Live type information for Smalltalk

hernan.wilkinson
Hi Jecel!
 thank you very much! I'm really exited/hooked with this idea. At 10Pines we are going to invest some of my time to polish it and port it to squeak/pharo, in fact the VM works for Squeak and I have a Squeak image with this but without the changes to the tools... if I have a couple of minutes I'll try to port all. I really believe it can improve our tools a lot.
 
 Thank you for letting me know about the typo!

 Cheers!
 Hernan

On Sat, Nov 24, 2018 at 9:33 PM Jecel Assumpcao Jr. <[hidden email]> wrote:
Hernan,

this is a great project and the slides are very nice as well.

One small typo on slide 65: "Feeling: When you start using it, you don't
want to loose it"

Actually you do, since "loose it" is kind of like "release it" or
"unleash it". What you most certainly don't want to do is "lose" it.

Anyway, congratulations!
-- Jecel



--
Hernán Wilkinson
Agile Software Development, Teaching & Coaching
Phone: +54 - 011 - 6091 - 3125
Mobile: +54 - 911 - 4470 - 7207
email: [hidden email]
site: http://www.10Pines.com
Address: Alem 693, Floor 5 B, Buenos Aires, Argentina


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Live type information for Smalltalk

Karl Ramberg
In reply to this post by hernan.wilkinson
Looks really cool. This will be really useful in development.

Cheers,
Karl


On Sat, Nov 24, 2018 at 4:52 PM Hernan Wilkinson <[hidden email]> wrote:
Hi all!,
I wanted to let you know that I have implemented a "feature" to have type information "live". Currently it is implemented on Cuis but the idea is to port it to Pharo and Squeak as well.
This feature is based on a few changes on the VM that collects the class of the object assigned to a variable, a parameter or when returning from a method. That information is available from the image and allows to improve the tools radically, like the autocompletion on the browser, looking for senders/implementors and even "scoping" the refactorings based on the type info.

I presented it at the last Smalltalks (the argentinean smalltalk conference) and I'm happy to announce its alpha version (1/1000) asFloat :-)

Here is a link to the repo that has the VM and a Cuis image to play with it: https://github.com/hernanwilkinson/Cuis-Smalltalk-DynamicTypeInformation
It also has the source of the VM's changes if you want to see how it is implemented. Currently it is implemented only in the stack VM and the VMs I compiled and uploaded to the repo are 64 bits for MacOs and Linux. (I don't have a Windows machine to compile it :-) )

Here is a link to a video that shows how it is implemented and how to use it: https://t.co/n8FQuo7pKZ

If you want to see the slides of the presentation, here is the link: https://www.slideshare.net/hernanwilkinson/dynamic-type-information

I would love for you to try it and get feedback, ideas, etc.
I really believe it is a "killer feature", something that could take Smalltalk one step further and show the way to other dynamically typed languages.

Cheers!
Hernan

--
Hernán Wilkinson
Agile Software Development, Teaching & Coaching
Phone: +54 - 011 - 6091 - 3125
Mobile: +54 - 911 - 4470 - 7207
email: [hidden email]
site: http://www.10Pines.com
Address: Alem 693, Floor 5 B, Buenos Aires, Argentina



Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Live type information for Smalltalk

Levente Uzonyi
In reply to this post by hernan.wilkinson
Hi Hernán,

This looks really cool. While I was watching the video, I was wondering
why you started to implement this in the VM. To me it seems more
straightforward to change the encoder to generate extra bytecodes to store
the type information. The advantage of this approach would be that it
could leverage the JIT.
Another thing I was thinking about are primitives. For most primitives you
know what the return type will be and what the expected arguments are, so
you could just create a lookup table for the code completion tool with
that information.

Levente

On Sat, 24 Nov 2018, Hernan Wilkinson wrote:

> Hi all!,I wanted to let you know that I have implemented a "feature" to have type information "live". Currently it is implemented on Cuis but the idea is to port it to Pharo and Squeak as well.
> This feature is based on a few changes on the VM that collects the class of the object assigned to a variable, a parameter or when returning from a method. That information is available from the image and allows to improve the tools radically, like the autocompletion on the
> browser, looking for senders/implementors and even "scoping" the refactorings based on the type info.
>
> I presented it at the last Smalltalks (the argentinean smalltalk conference) and I'm happy to announce its alpha version (1/1000) asFloat :-)
>
> Here is a link to the repo that has the VM and a Cuis image to play with it: https://github.com/hernanwilkinson/Cuis-Smalltalk-DynamicTypeInformation
> It also has the source of the VM's changes if you want to see how it is implemented. Currently it is implemented only in the stack VM and the VMs I compiled and uploaded to the repo are 64 bits for MacOs and Linux. (I don't have a Windows machine to compile it :-) )
>
> Here is a link to a video that shows how it is implemented and how to use it: https://t.co/n8FQuo7pKZ
>
> If you want to see the slides of the presentation, here is the link: https://www.slideshare.net/hernanwilkinson/dynamic-type-information
>
> I would love for you to try it and get feedback, ideas, etc.
> I really believe it is a "killer feature", something that could take Smalltalk one step further and show the way to other dynamically typed languages.
>
> Cheers!
> Hernan
>
> --
> Hernán Wilkinson
> Agile Software Development, Teaching & Coaching
> Phone: +54 - 011 - 6091 - 3125
> Mobile: +54 - 911 - 4470 - 7207
> email: [hidden email]
> site: http://www.10Pines.com
> Address: Alem 693, Floor 5 B, Buenos Aires, Argentina
>
>