[ANN] Improving dialect portability and git support

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

[ANN] Improving dialect portability and git support

Mariano Martinez Peck-2
Here at Instantiations we are helping to improve dialect portability by implementing some frameworks that are gaining acceptance in the greater Smalltalk community.
Closely related to this is a new feature we are working on that will bring VA Smalltalk support for text-based version control systems like Git. 

We wanted to take this opportunity to make public Pharo2VA [1], a little tool to ease exporting code from Pharo to VA Smalltalk.
This tool does a few things, one being the auto-conversion of the curly brackets Array.

Pharo2VA is installed and run in Pharo in order to facilitate the later import in VA. If you check at the top of the GitHub project you can see some labels about the current release, the CI status (made with Travis CI), and the results of Coveralls (test coverage). This is part of the things that could come when you can use GitHub for managing your code. 

Tonel [2] is a file-per-class text-based export/import format for Smalltalk code. Tonel works well on Windows and Linux filesystems, files are readable and it is Git-friendly (actually any kind of text-based versioning control system).

STON [3], short for Smalltalk Object Notation, is a lightweight, text-based human-readable data interchange format for class-based object-oriented languages like Smalltalk. It can be used to serialise domain level objects, either for persistency or network transport. By offering class tags for objects as well as support for object references, arbitrary object graphs can we written and read back. Tonel uses STON to encode the definitions metadata. 

We have STON currently working in 9.2 and Tonel already in progress and we expect to finish both by the next release. The availability of these projects in VAST will not just allow for storing VA Smalltalk code in version control systems like Git (something our customers have begun asking about), but it will also store it in a community format to facilitate sharing code across the various dialects in the Smalltalk community.

As a preview, we have created this repository [4] where you can find some demo apps that were exported from VA in Tonel format and they could also be imported into other
dialects such as Pharo, Gemstone, VW or any other dialect supporting Tonel format.

We also wanted to thank all the people that participated in the definition or implementation of all these projects. 

Best regards, 


--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
[hidden email]

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Improving dialect portability and git support

Richard Sargent
Administrator
Very nice, Mariano!

----------
I do think it would be nice to have the dynamic {} array syntax supported. It definitely increases readability, even if it does add gratuitous syntax. The scanner and parser are relatively easy to modify. If you want, I can send you an example which I created to support parsing VisualWorks literal references: #{[name.]*name} e.g. #{Kernel.UserMessage}


On Friday, January 25, 2019 at 12:18:48 PM UTC-8, Mariano Martinez Peck wrote:
Here at Instantiations we are helping to improve dialect portability by implementing some frameworks that are gaining acceptance in the greater Smalltalk community.
Closely related to this is a new feature we are working on that will bring VA Smalltalk support for text-based version control systems like Git. 

We wanted to take this opportunity to make public Pharo2VA [1], a little tool to ease exporting code from Pharo to VA Smalltalk.
This tool does a few things, one being the auto-conversion of the curly brackets Array.

Pharo2VA is installed and run in Pharo in order to facilitate the later import in VA. If you check at the top of the GitHub project you can see some labels about the current release, the CI status (made with Travis CI), and the results of Coveralls (test coverage). This is part of the things that could come when you can use GitHub for managing your code. 

Tonel [2] is a file-per-class text-based export/import format for Smalltalk code. Tonel works well on Windows and Linux filesystems, files are readable and it is Git-friendly (actually any kind of text-based versioning control system).

STON [3], short for Smalltalk Object Notation, is a lightweight, text-based human-readable data interchange format for class-based object-oriented languages like Smalltalk. It can be used to serialise domain level objects, either for persistency or network transport. By offering class tags for objects as well as support for object references, arbitrary object graphs can we written and read back. Tonel uses STON to encode the definitions metadata. 

We have STON currently working in 9.2 and Tonel already in progress and we expect to finish both by the next release. The availability of these projects in VAST will not just allow for storing VA Smalltalk code in version control systems like Git (something our customers have begun asking about), but it will also store it in a community format to facilitate sharing code across the various dialects in the Smalltalk community.

As a preview, we have created this repository [4] where you can find some demo apps that were exported from VA in Tonel format and they could also be imported into other
dialects such as Pharo, Gemstone, VW or any other dialect supporting Tonel format.

We also wanted to thank all the people that participated in the definition or implementation of all these projects. 

Best regards, 

[1] <a href="https://github.com/vasmalltalk/pharo2va" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Fpharo2va\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFLmpNW9fx47my8Vz44Fz6XWIybQg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Fpharo2va\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFLmpNW9fx47my8Vz44Fz6XWIybQg&#39;;return true;">https://github.com/vasmalltalk/pharo2va
[2] <a href="https://github.com/pharo-vcs/tonel" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fpharo-vcs%2Ftonel\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHzxCZx0-4bWC97e4Gfjv2H90N7lQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fpharo-vcs%2Ftonel\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHzxCZx0-4bWC97e4Gfjv2H90N7lQ&#39;;return true;">https://github.com/pharo-vcs/tonel
[3] <a href="https://github.com/svenvc/ston" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fsvenvc%2Fston\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFBlz5weUUFBZ-fb679rwGrNpY02g&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fsvenvc%2Fston\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFBlz5weUUFBZ-fb679rwGrNpY02g&#39;;return true;">https://github.com/svenvc/ston
[4] <a href="https://github.com/vasmalltalk/tonel-demos" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Ftonel-demos\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFRLq2l6B7Xo3XQs9LEhzAk1C5Rnw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Ftonel-demos\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFRLq2l6B7Xo3XQs9LEhzAk1C5Rnw&#39;;return true;">https://github.com/vasmalltalk/tonel-demos

--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
<a href="javascript:" target="_blank" gdf-obfuscated-mailto="9LoXecwHGgAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">mp...@...

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Curly brackets Array [WAS] Re: [ANN] Improving dialect portability and git support

Seth Berman
Hi Richard,

Thanks for your inputs.  The {} would be nice and perhaps if we get enough demand for it we may do it.
The EsScanner is auto-generated code using a tool from the ancient past...well before we took over the product.
So any modifications to the scanner must be done with absolute care since we have to modify obfuscated code by hand
in an area we have little testing for.  The {} token identification is easy...its the subsequent statements tokenizing/parsing within that new state
that gives me pause.  
And then of course, the small matter of updating the editor tooling so it won't be screaming at you when you type, what it thinks to be,
a bunch of syntax errors.
However, if you have an existing implementation that solves this issue, we would definitely be happy to look at it.
Thanks.

- Seth

On Friday, January 25, 2019 at 5:59:16 PM UTC-5, Richard Sargent wrote:
Very nice, Mariano!

----------
I do think it would be nice to have the dynamic {} array syntax supported. It definitely increases readability, even if it does add gratuitous syntax. The scanner and parser are relatively easy to modify. If you want, I can send you an example which I created to support parsing VisualWorks literal references: #{[name.]*name} e.g. #{Kernel.UserMessage}


On Friday, January 25, 2019 at 12:18:48 PM UTC-8, Mariano Martinez Peck wrote:
Here at Instantiations we are helping to improve dialect portability by implementing some frameworks that are gaining acceptance in the greater Smalltalk community.
Closely related to this is a new feature we are working on that will bring VA Smalltalk support for text-based version control systems like Git. 

We wanted to take this opportunity to make public Pharo2VA [1], a little tool to ease exporting code from Pharo to VA Smalltalk.
This tool does a few things, one being the auto-conversion of the curly brackets Array.

Pharo2VA is installed and run in Pharo in order to facilitate the later import in VA. If you check at the top of the GitHub project you can see some labels about the current release, the CI status (made with Travis CI), and the results of Coveralls (test coverage). This is part of the things that could come when you can use GitHub for managing your code. 

Tonel [2] is a file-per-class text-based export/import format for Smalltalk code. Tonel works well on Windows and Linux filesystems, files are readable and it is Git-friendly (actually any kind of text-based versioning control system).

STON [3], short for Smalltalk Object Notation, is a lightweight, text-based human-readable data interchange format for class-based object-oriented languages like Smalltalk. It can be used to serialise domain level objects, either for persistency or network transport. By offering class tags for objects as well as support for object references, arbitrary object graphs can we written and read back. Tonel uses STON to encode the definitions metadata. 

We have STON currently working in 9.2 and Tonel already in progress and we expect to finish both by the next release. The availability of these projects in VAST will not just allow for storing VA Smalltalk code in version control systems like Git (something our customers have begun asking about), but it will also store it in a community format to facilitate sharing code across the various dialects in the Smalltalk community.

As a preview, we have created this repository [4] where you can find some demo apps that were exported from VA in Tonel format and they could also be imported into other
dialects such as Pharo, Gemstone, VW or any other dialect supporting Tonel format.

We also wanted to thank all the people that participated in the definition or implementation of all these projects. 

Best regards, 

[1] <a href="https://github.com/vasmalltalk/pharo2va" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Fpharo2va\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFLmpNW9fx47my8Vz44Fz6XWIybQg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Fpharo2va\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFLmpNW9fx47my8Vz44Fz6XWIybQg&#39;;return true;">https://github.com/vasmalltalk/pharo2va
[2] <a href="https://github.com/pharo-vcs/tonel" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fpharo-vcs%2Ftonel\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHzxCZx0-4bWC97e4Gfjv2H90N7lQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fpharo-vcs%2Ftonel\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHzxCZx0-4bWC97e4Gfjv2H90N7lQ&#39;;return true;">https://github.com/pharo-vcs/tonel
[3] <a href="https://github.com/svenvc/ston" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fsvenvc%2Fston\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFBlz5weUUFBZ-fb679rwGrNpY02g&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fsvenvc%2Fston\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFBlz5weUUFBZ-fb679rwGrNpY02g&#39;;return true;">https://github.com/svenvc/ston
[4] <a href="https://github.com/vasmalltalk/tonel-demos" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Ftonel-demos\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFRLq2l6B7Xo3XQs9LEhzAk1C5Rnw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fvasmalltalk%2Ftonel-demos\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFRLq2l6B7Xo3XQs9LEhzAk1C5Rnw&#39;;return true;">https://github.com/vasmalltalk/tonel-demos

--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
[hidden email]

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Curly brackets Array [WAS] Re: [ANN] Improving dialect portability and git support

Richard Sargent
Administrator
On Mon, Jan 28, 2019 at 6:55 AM 'Seth Berman' via VA Smalltalk <[hidden email]> wrote:
Hi Richard,

Thanks for your inputs.  The {} would be nice and perhaps if we get enough demand for it we may do it.
The EsScanner is auto-generated code using a tool from the ancient past...well before we took over the product.
So any modifications to the scanner must be done with absolute care since we have to modify obfuscated code by hand
in an area we have little testing for.  The {} token identification is easy...its the subsequent statements tokenizing/parsing within that new state
that gives me pause.  
And then of course, the small matter of updating the editor tooling so it won't be screaming at you when you type, what it thinks to be,
a bunch of syntax errors.
However, if you have an existing implementation that solves this issue, we would definitely be happy to look at it.

Unfortunately, the only one I tackled was the dotted array of global symbols  for VW window specs.

Thanks.

- Seth

On Friday, January 25, 2019 at 5:59:16 PM UTC-5, Richard Sargent wrote:
Very nice, Mariano!

----------
I do think it would be nice to have the dynamic {} array syntax supported. It definitely increases readability, even if it does add gratuitous syntax. The scanner and parser are relatively easy to modify. If you want, I can send you an example which I created to support parsing VisualWorks literal references: #{[name.]*name} e.g. #{Kernel.UserMessage}


On Friday, January 25, 2019 at 12:18:48 PM UTC-8, Mariano Martinez Peck wrote:
Here at Instantiations we are helping to improve dialect portability by implementing some frameworks that are gaining acceptance in the greater Smalltalk community.
Closely related to this is a new feature we are working on that will bring VA Smalltalk support for text-based version control systems like Git. 

We wanted to take this opportunity to make public Pharo2VA [1], a little tool to ease exporting code from Pharo to VA Smalltalk.
This tool does a few things, one being the auto-conversion of the curly brackets Array.

Pharo2VA is installed and run in Pharo in order to facilitate the later import in VA. If you check at the top of the GitHub project you can see some labels about the current release, the CI status (made with Travis CI), and the results of Coveralls (test coverage). This is part of the things that could come when you can use GitHub for managing your code. 

Tonel [2] is a file-per-class text-based export/import format for Smalltalk code. Tonel works well on Windows and Linux filesystems, files are readable and it is Git-friendly (actually any kind of text-based versioning control system).

STON [3], short for Smalltalk Object Notation, is a lightweight, text-based human-readable data interchange format for class-based object-oriented languages like Smalltalk. It can be used to serialise domain level objects, either for persistency or network transport. By offering class tags for objects as well as support for object references, arbitrary object graphs can we written and read back. Tonel uses STON to encode the definitions metadata. 

We have STON currently working in 9.2 and Tonel already in progress and we expect to finish both by the next release. The availability of these projects in VAST will not just allow for storing VA Smalltalk code in version control systems like Git (something our customers have begun asking about), but it will also store it in a community format to facilitate sharing code across the various dialects in the Smalltalk community.

As a preview, we have created this repository [4] where you can find some demo apps that were exported from VA in Tonel format and they could also be imported into other
dialects such as Pharo, Gemstone, VW or any other dialect supporting Tonel format.

We also wanted to thank all the people that participated in the definition or implementation of all these projects. 

Best regards, 


--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
[hidden email]

--
You received this message because you are subscribed to a topic in the Google Groups "VA Smalltalk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/va-smalltalk/U4HVPl0KVrc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.