On 10 Nov 2017, at 13:05, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2017-11-10 17:03 GMT+01:00 Denis Kudriashov <dionisiydk@gmail.com <mailto:dionisiydk@gmail.com>>:
2017-11-10 16:30 GMT+01:00 Martin McClure <martin@hand2mouse.com <mailto:martin@hand2mouse.com>>: Tonel is intended to be, I believe: * For Smalltalk primarily (although there are other languages) * Be for any Smalltalk dialect (although the first implementation is for Pharo, it is being ported to GemStone, and we intend to port it to VW and VA)
Interesting how it will be handled when Pharo will use slots abstraction exclusively. And more simple, when there will be only package and tags instead of class categories.
To be more clear. Imaging that instead of #instanceVariables field Pharo will use #slots. And instead of #category it will be #package and #tags
what does it has to do with this thread? handling that is trivial: once we actually have slots (bah, we have them, but once we *use* them) and once we move to package+tags, we just adapt the descriptions. Thatâs the advantage of using STON to keep them. Esteban
* Be human-readable (some people want to be able to use tools like GitHub to look at diffs and such) * Be human-editable using normal text editors (important for porting -- sometimes you just have to edit the source before it will load, for instance)
I think that Tonel using [] to enclose the source is a pretty good idea. A proper parser should be able to correctly parse Smalltalk code from any dialect, and it makes it human-readable and human-editable.
However, as has been noted in this thread, it would also be nice to handle non-Smalltalk code. One way to do this (one that was in an earlier proposal but is not currently in Tonel) is to use pure STON for any source code that does not have standard Smalltalk syntax. A method like this would look something like:
{ 'category' : 'public', 'source' : 'whatever the source code is, with STON escapes as necessary' }
Regards, -Martin