Git and Tonel (and Magritte)

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

Git and Tonel (and Magritte)

Sean P. DeNigris
Administrator
We would like to port Magritte to Tonel because we have reports of problems
on Windows with long filenames and would like to understand the
ramifications to users.

Three questions:
1. Do any Squeakers load Magritte from
https://github.com/magritte-metamodel/magritte ?
2. Does Squeak support git?
3. Does Squeak support Tonel?

I found references to 2 and 3 in this ML, but nothing definitive. I'm
generally interested in those answers beyond the current porting effort.

In short, will anyone be disrupted by the proposed migration?

Thanks



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Squeak-Dev-f45488.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Tobias Pape

> On 24.08.2020, at 20:12, Sean P. DeNigris <[hidden email]> wrote:
>
> We would like to port Magritte to Tonel because we have reports of problems
> on Windows with long filenames and would like to understand the
> ramifications to users.
>
> Three questions:
> 1. Do any Squeakers load Magritte from
> https://github.com/magritte-metamodel/magritte ?

I used to.

> 2. Does Squeak support git?

Yes.

> 3. Does Squeak support Tonel?

No.

Best regards
        -tobias

>
> I found references to 2 and 3 in this ML, but nothing definitive. I'm
> generally interested in those answers beyond the current porting effort.
>
> In short, will anyone be disrupted by the proposed migration?



Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Beckmann, Tom
Hi Sean,

we added initial support for Tonel in Squeak in this somewhat recent Metacello PR: https://github.com/Metacello/metacello/pull/515

It has not undergone as much testing as the filetree infrastructure and people occasionally still find bugs. Additionally, since we do not have a tight integration with the underlying git repo, versions and author timestamps are lost when loading Tonel repos in Squeak at the moment.

My personal opinion is that if you have showstopping issues on Windows due to filetree, moving to Tonel is the right call. Maybe you could consider doing the transition on a branch first, try loading it in Squeak5.3, and report any issues you notice.

Best,
Tom
________________________________________
From: Squeak-dev <[hidden email]> on behalf of Tobias Pape <[hidden email]>
Sent: Monday, August 24, 2020 8:22:39 PM
To: The general-purpose Squeak developers list
Subject: Re: [squeak-dev] Git and Tonel (and Magritte)

> On 24.08.2020, at 20:12, Sean P. DeNigris <[hidden email]> wrote:
>
> We would like to port Magritte to Tonel because we have reports of problems
> on Windows with long filenames and would like to understand the
> ramifications to users.
>
> Three questions:
> 1. Do any Squeakers load Magritte from
> https://github.com/magritte-metamodel/magritte ?

I used to.

> 2. Does Squeak support git?

Yes.

> 3. Does Squeak support Tonel?

No.

Best regards
        -tobias

>
> I found references to 2 and 3 in this ML, but nothing definitive. I'm
> generally interested in those answers beyond the current porting effort.
>
> In short, will anyone be disrupted by the proposed migration?




Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Tobias Pape
Hi

> On 25.08.2020, at 08:15, Beckmann, Tom <[hidden email]> wrote:
>
> Hi Sean,
>
> we added initial support for Tonel in Squeak in this somewhat recent Metacello PR: https://github.com/Metacello/metacello/pull/515
>
> It has not undergone as much testing as the filetree infrastructure and people occasionally still find bugs. Additionally, since we do not have a tight integration with the underlying git repo, versions and author timestamps are lost when loading Tonel repos in Squeak at the moment.
>
> My personal opinion is that if you have showstopping issues on Windows due to filetree, moving to Tonel is the right call. Maybe you could consider doing the transition on a branch first, try loading it in Squeak5.3, and report any issues you notice.
>

It would make me sad to see it go Tonel.
but that's just me :)
-t

> Best,
> Tom
> ________________________________________
> From: Squeak-dev <[hidden email]> on behalf of Tobias Pape <[hidden email]>
> Sent: Monday, August 24, 2020 8:22:39 PM
> To: The general-purpose Squeak developers list
> Subject: Re: [squeak-dev] Git and Tonel (and Magritte)
>
>> On 24.08.2020, at 20:12, Sean P. DeNigris <[hidden email]> wrote:
>>
>> We would like to port Magritte to Tonel because we have reports of problems
>> on Windows with long filenames and would like to understand the
>> ramifications to users.
>>
>> Three questions:
>> 1. Do any Squeakers load Magritte from
>> https://github.com/magritte-metamodel/magritte ?
>
> I used to.
>
>> 2. Does Squeak support git?
>
> Yes.
>
>> 3. Does Squeak support Tonel?
>
> No.
>
> Best regards
>        -tobias
>
>>
>> I found references to 2 and 3 in this ML, but nothing definitive. I'm
>> generally interested in those answers beyond the current porting effort.
>>
>> In short, will anyone be disrupted by the proposed migration?
>
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Eliot Miranda-2


> On Aug 24, 2020, at 11:17 PM, Tobias Pape <[hidden email]> wrote:
>
> Hi
>
>> On 25.08.2020, at 08:15, Beckmann, Tom <[hidden email]> wrote:
>>
>> Hi Sean,
>>
>> we added initial support for Tonel in Squeak in this somewhat recent Metacello PR: https://github.com/Metacello/metacello/pull/515
>>
>> It has not undergone as much testing as the filetree infrastructure and people occasionally still find bugs. Additionally, since we do not have a tight integration with the underlying git repo, versions and author timestamps are lost when loading Tonel repos in Squeak at the moment.
>>
>> My personal opinion is that if you have showstopping issues on Windows due to filetree, moving to Tonel is the right call. Maybe you could consider doing the transition on a branch first, try loading it in Squeak5.3, and report any issues you notice.
>>
>
> It would make me sad to see it go Tonel.
> but that's just me :)

If we go with Tonel then we must change it to support method timestamps.  I have a change set that does this (it is a trivial change).  And my changes are controlled by a class variable so that the same code can produce Pharo format or a slightly modified format that includes method timestamps.

What I don’t understand is why Esteban Lorenzano refuses to accept my changes and allow Tonel to be used either with or without method timestamps.

> -t
>
>> Best,
>> Tom
>> ________________________________________
>> From: Squeak-dev <[hidden email]> on behalf of Tobias Pape <[hidden email]>
>> Sent: Monday, August 24, 2020 8:22:39 PM
>> To: The general-purpose Squeak developers list
>> Subject: Re: [squeak-dev] Git and Tonel (and Magritte)
>>
>>>> On 24.08.2020, at 20:12, Sean P. DeNigris <[hidden email]> wrote:
>>>
>>> We would like to port Magritte to Tonel because we have reports of problems
>>> on Windows with long filenames and would like to understand the
>>> ramifications to users.
>>>
>>> Three questions:
>>> 1. Do any Squeakers load Magritte from
>>> https://github.com/magritte-metamodel/magritte ?
>>
>> I used to.
>>
>>> 2. Does Squeak support git?
>>
>> Yes.
>>
>>> 3. Does Squeak support Tonel?
>>
>> No.
>>
>> Best regards
>>       -tobias
>>
>>>
>>> I found references to 2 and 3 in this ML, but nothing definitive. I'm
>>> generally interested in those answers beyond the current porting effort.
>>>
>>> In short, will anyone be disrupted by the proposed migration?
>>
>>
>>
>>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Jakob Reschke
Hi Eliot,

Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
<[hidden email]>:
>
> If we go with Tonel then we must change it to support method timestamps.  I have a change set that does this (it is a trivial change).  And my changes are controlled by a class variable so that the same code can produce Pharo format or a slightly modified format that includes method timestamps.
>
> What I don’t understand is why Esteban Lorenzano refuses to accept my changes and allow Tonel to be used either with or without method timestamps.
>

Method timestamps produce merge conflicts inevitably. Can you re-post
your changeset here?
https://github.com/squeak-smalltalk/squeak-tonel/issues Then we could
discuss whether to include it at least in the Squeak version. As we
have heard from Mariano some time ago, VA Smalltalk also puts its
dialect-specific metadata in the Tonel format, so Squeak would not be
the first to do so.

Kind regards,
Jakob

Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Eliot Miranda-2
Jakob,

> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]> wrote:
>
> Hi Eliot,
>
>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>> <[hidden email]>:
>>
>> If we go with Tonel then we must change it to support method timestamps.  I have a change set that does this (it is a trivial change).  And my changes are controlled by a class variable so that the same code can produce Pharo format or a slightly modified format that includes method timestamps.
>>
>> What I don’t understand is why Esteban Lorenzano refuses to accept my changes and allow Tonel to be used either with or without method timestamps.
>>
>
> Method timestamps produce merge conflicts inevitably.

a) only when they change, and they change only when methods change
b) inadvertent method timestamp changes can be undone automatically
c) Squeak uses method timestamps; we have lots of tools that use them. Dropping them just so that we can use Tonel is an example of the tail wagging the dog. The Tonel interface must instead be made to function with method timestamps

If there is a decision not to support method timestamps then I will not support the work. This is a make or break issue for me.

> Can you re-post
> your changeset here?

I’ll post it later today (reading email in bed right now).

> https://github.com/squeak-smalltalk/squeak-tonel/issues

OK

> Then we could
> discuss whether to include it at least in the Squeak version. As we
> have heard from Mariano some time ago, VA Smalltalk also puts its
> dialect-specific metadata in the Tonel format, so Squeak would not be
> the first to do so.

Good.

> Kind regards,
> Jakob

Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Dale Henrichs-3
Eliot,

When you repost, could you make sure that you include a description of
where the time stamps are stashed ... I'm assuming that you are adding
it to the method properties (where the category is stashed) as I think
that this is the right place, but it's always best not to guess:)

The current crop of Tonel readers/writers do not necessarily do a good
job of preserving, foreign data (IIRC, the convention is to add a
platform prefix to the property name, which is the same convention used
for class properties ... at GemStone we add a leading `gs_` to our
property names), so until we can get all of the different Tonel
readers/writers to preserve foreign properties (package, class and
method) it will continue to be dicey business for preserving foreign
properties in cross platform projects ...

Monticello does not explicitly preserve foreign properties as the
definitions get created from the native objects, so it takes some
additional work to arrange to preserve foreign properties for packages,
classes, and methods in the objects themselves. So it is worth
considering what you will do with preserving foreign properties from
other platforms.

FWIW, I intend to support the preservation of foreign properties in
Rowan (read that as "I haven't done that yet":)

Finally, Martin McClure has started working on a spec for the next
generation Tonel format ... to add a few missing pieces and tweak the
format to make it possible to continue to evolve the Tonel format into
the future in a somewhat sane way. If there are folks here in the Squeak
community who would like to review, comment and participate in the
creation of the next generation format, send me (or Martin) mail and
we'll get you added to the mailing list.

Dale

On 8/26/20 7:15 AM, Eliot Miranda wrote:

> Jakob,
>
>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]> wrote:
>>
>> Hi Eliot,
>>
>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>>> <[hidden email]>:
>>>
>>> If we go with Tonel then we must change it to support method timestamps.  I have a change set that does this (it is a trivial change).  And my changes are controlled by a class variable so that the same code can produce Pharo format or a slightly modified format that includes method timestamps.
>>>
>>> What I don’t understand is why Esteban Lorenzano refuses to accept my changes and allow Tonel to be used either with or without method timestamps.
>>>
>> Method timestamps produce merge conflicts inevitably.
> a) only when they change, and they change only when methods change
> b) inadvertent method timestamp changes can be undone automatically
> c) Squeak uses method timestamps; we have lots of tools that use them. Dropping them just so that we can use Tonel is an example of the tail wagging the dog. The Tonel interface must instead be made to function with method timestamps
>
> If there is a decision not to support method timestamps then I will not support the work. This is a make or break issue for me.
>
>> Can you re-post
>> your changeset here?
> I’ll post it later today (reading email in bed right now).
>
>> https://github.com/squeak-smalltalk/squeak-tonel/issues
> OK
>
>> Then we could
>> discuss whether to include it at least in the Squeak version. As we
>> have heard from Mariano some time ago, VA Smalltalk also puts its
>> dialect-specific metadata in the Tonel format, so Squeak would not be
>> the first to do so.
> Good.
>
>> Kind regards,
>> Jakob

Reply | Threaded
Open this post in threaded view
|

Squeak, Tonel, and the Tonel standard

Martin McClure-2
Hi all,

Dale let me know this morning that Tonel was being discussed on
Squeak-dev.  I beg your pardon for arriving late.

As Dale said, I'm the minder of the Tonel 1.0 standard, which is
currently in draft, with initial feedback from some of the folks who
have implemented or are interested in implementing Tonel for their
Smalltalk dialect.

I'm interested in getting feedback from *all* dialects who are
interested in using Tonel. I hope that the Squeak community will
participate.

Tonel started as a collaboration between Pharo (primarily Esteban
Lorenzano) and GemTalk (primarily me), but the intent has always been to
have a format that can be used in common between *all* dialects of
Smalltalk. The fundamental shape of Tonel is probably not going to
change at this point, but feedback so far is likely to result in some
changes to the draft standard.

Note that Tonel as currently implemented by Pharo is a bit different
from standard Tonel. Pharo has agreed to make several changes to the
format to standardize it. I'm not sure what the status of those changes
within the Pharo project. The GemStone implementation is closer to the
standard, though not fully there yet.

I encourage the Squeak community to consider whether coding to the
standard early on might be a desirable direction. As Dale explained, the
standard does allow for dialect-specific properties, so adding
timestamps probably doesn't require any changes to the spec.

I'd like it If a few folks from the community would volunteer to give
the spec a careful read-through and comment. It's a bit of a read (and
was quite a bit of effort to write!) so I won't post the draft on the
list, but it's available by request, and I need to figure out a place to
make it readily available.

Regards,
-Martin


On 8/26/20 9:41 AM, Dale Henrichs wrote:

> Eliot,
>
> When you repost, could you make sure that you include a description of
> where the time stamps are stashed ... I'm assuming that you are adding
> it to the method properties (where the category is stashed) as I think
> that this is the right place, but it's always best not to guess:)
>
> The current crop of Tonel readers/writers do not necessarily do a good
> job of preserving, foreign data (IIRC, the convention is to add a
> platform prefix to the property name, which is the same convention
> used for class properties ... at GemStone we add a leading `gs_` to
> our property names), so until we can get all of the different Tonel
> readers/writers to preserve foreign properties (package, class and
> method) it will continue to be dicey business for preserving foreign
> properties in cross platform projects ...
>
> Monticello does not explicitly preserve foreign properties as the
> definitions get created from the native objects, so it takes some
> additional work to arrange to preserve foreign properties for
> packages, classes, and methods in the objects themselves. So it is
> worth considering what you will do with preserving foreign properties
> from other platforms.
>
> FWIW, I intend to support the preservation of foreign properties in
> Rowan (read that as "I haven't done that yet":)
>
> Finally, Martin McClure has started working on a spec for the next
> generation Tonel format ... to add a few missing pieces and tweak the
> format to make it possible to continue to evolve the Tonel format into
> the future in a somewhat sane way. If there are folks here in the
> Squeak community who would like to review, comment and participate in
> the creation of the next generation format, send me (or Martin) mail
> and we'll get you added to the mailing list.
>
> Dale
>
> On 8/26/20 7:15 AM, Eliot Miranda wrote:
>> Jakob,
>>
>>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]>
>>> wrote:
>>>
>>> Hi Eliot,
>>>
>>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>>>> <[hidden email]>:
>>>>
>>>> If we go with Tonel then we must change it to support method
>>>> timestamps.  I have a change set that does this (it is a trivial
>>>> change).  And my changes are controlled by a class variable so that
>>>> the same code can produce Pharo format or a slightly modified
>>>> format that includes method timestamps.
>>>>
>>>> What I don’t understand is why Esteban Lorenzano refuses to accept
>>>> my changes and allow Tonel to be used either with or without method
>>>> timestamps.
>>>>
>>> Method timestamps produce merge conflicts inevitably.
>> a) only when they change, and they change only when methods change
>> b) inadvertent method timestamp changes can be undone automatically
>> c) Squeak uses method timestamps; we have lots of tools that use
>> them. Dropping them just so that we can use Tonel is an example of
>> the tail wagging the dog. The Tonel interface must instead be made to
>> function with method timestamps
>>
>> If there is a decision not to support method timestamps then I will
>> not support the work. This is a make or break issue for me.
>>
>>> Can you re-post
>>> your changeset here?
>> I’ll post it later today (reading email in bed right now).
>>
>>> https://github.com/squeak-smalltalk/squeak-tonel/issues
>> OK
>>
>>> Then we could
>>> discuss whether to include it at least in the Squeak version. As we
>>> have heard from Mariano some time ago, VA Smalltalk also puts its
>>> dialect-specific metadata in the Tonel format, so Squeak would not be
>>> the first to do so.
>> Good.
>>
>>> Kind regards,
>>> Jakob
>


Reply | Threaded
Open this post in threaded view
|

Re: Squeak, Tonel, and the Tonel standard

Jakob Reschke
Hello Martin,

While I probably won't be able to provide comprehensive feedback or
even read the whole text in the near future, I would certainly be
interested to have a look.

What is the licensing status of the draft and future proposed
standard? If it is in some plain text/markup format, is it possible to
upload the draft to a public GitHub repository? Or something similar
that allows for commenting on changes. On GitHub one can only comment
on diffs, but the initial commit will add all the lines, so one could
still comment on all of the text. Also people could provide suggested
changes via pull requests.

Kind regards,
Jakob

Am Mi., 26. Aug. 2020 um 21:20 Uhr schrieb Martin McClure
<[hidden email]>:

>
> Hi all,
>
> Dale let me know this morning that Tonel was being discussed on
> Squeak-dev.  I beg your pardon for arriving late.
>
> As Dale said, I'm the minder of the Tonel 1.0 standard, which is
> currently in draft, with initial feedback from some of the folks who
> have implemented or are interested in implementing Tonel for their
> Smalltalk dialect.
>
> I'm interested in getting feedback from *all* dialects who are
> interested in using Tonel. I hope that the Squeak community will
> participate.
>
> Tonel started as a collaboration between Pharo (primarily Esteban
> Lorenzano) and GemTalk (primarily me), but the intent has always been to
> have a format that can be used in common between *all* dialects of
> Smalltalk. The fundamental shape of Tonel is probably not going to
> change at this point, but feedback so far is likely to result in some
> changes to the draft standard.
>
> Note that Tonel as currently implemented by Pharo is a bit different
> from standard Tonel. Pharo has agreed to make several changes to the
> format to standardize it. I'm not sure what the status of those changes
> within the Pharo project. The GemStone implementation is closer to the
> standard, though not fully there yet.
>
> I encourage the Squeak community to consider whether coding to the
> standard early on might be a desirable direction. As Dale explained, the
> standard does allow for dialect-specific properties, so adding
> timestamps probably doesn't require any changes to the spec.
>
> I'd like it If a few folks from the community would volunteer to give
> the spec a careful read-through and comment. It's a bit of a read (and
> was quite a bit of effort to write!) so I won't post the draft on the
> list, but it's available by request, and I need to figure out a place to
> make it readily available.
>
> Regards,
> -Martin
>
>
> On 8/26/20 9:41 AM, Dale Henrichs wrote:
> > Eliot,
> >
> > When you repost, could you make sure that you include a description of
> > where the time stamps are stashed ... I'm assuming that you are adding
> > it to the method properties (where the category is stashed) as I think
> > that this is the right place, but it's always best not to guess:)
> >
> > The current crop of Tonel readers/writers do not necessarily do a good
> > job of preserving, foreign data (IIRC, the convention is to add a
> > platform prefix to the property name, which is the same convention
> > used for class properties ... at GemStone we add a leading `gs_` to
> > our property names), so until we can get all of the different Tonel
> > readers/writers to preserve foreign properties (package, class and
> > method) it will continue to be dicey business for preserving foreign
> > properties in cross platform projects ...
> >
> > Monticello does not explicitly preserve foreign properties as the
> > definitions get created from the native objects, so it takes some
> > additional work to arrange to preserve foreign properties for
> > packages, classes, and methods in the objects themselves. So it is
> > worth considering what you will do with preserving foreign properties
> > from other platforms.
> >
> > FWIW, I intend to support the preservation of foreign properties in
> > Rowan (read that as "I haven't done that yet":)
> >
> > Finally, Martin McClure has started working on a spec for the next
> > generation Tonel format ... to add a few missing pieces and tweak the
> > format to make it possible to continue to evolve the Tonel format into
> > the future in a somewhat sane way. If there are folks here in the
> > Squeak community who would like to review, comment and participate in
> > the creation of the next generation format, send me (or Martin) mail
> > and we'll get you added to the mailing list.
> >
> > Dale
> >
> > On 8/26/20 7:15 AM, Eliot Miranda wrote:
> >> Jakob,
> >>
> >>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]>
> >>> wrote:
> >>>
> >>> Hi Eliot,
> >>>
> >>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
> >>>> <[hidden email]>:
> >>>>
> >>>> If we go with Tonel then we must change it to support method
> >>>> timestamps.  I have a change set that does this (it is a trivial
> >>>> change).  And my changes are controlled by a class variable so that
> >>>> the same code can produce Pharo format or a slightly modified
> >>>> format that includes method timestamps.
> >>>>
> >>>> What I don’t understand is why Esteban Lorenzano refuses to accept
> >>>> my changes and allow Tonel to be used either with or without method
> >>>> timestamps.
> >>>>
> >>> Method timestamps produce merge conflicts inevitably.
> >> a) only when they change, and they change only when methods change
> >> b) inadvertent method timestamp changes can be undone automatically
> >> c) Squeak uses method timestamps; we have lots of tools that use
> >> them. Dropping them just so that we can use Tonel is an example of
> >> the tail wagging the dog. The Tonel interface must instead be made to
> >> function with method timestamps
> >>
> >> If there is a decision not to support method timestamps then I will
> >> not support the work. This is a make or break issue for me.
> >>
> >>> Can you re-post
> >>> your changeset here?
> >> I’ll post it later today (reading email in bed right now).
> >>
> >>> https://github.com/squeak-smalltalk/squeak-tonel/issues
> >> OK
> >>
> >>> Then we could
> >>> discuss whether to include it at least in the Squeak version. As we
> >>> have heard from Mariano some time ago, VA Smalltalk also puts its
> >>> dialect-specific metadata in the Tonel format, so Squeak would not be
> >>> the first to do so.
> >> Good.
> >>
> >>> Kind regards,
> >>> Jakob
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Squeak, Tonel, and the Tonel standard

Martin McClure-2
Hi Jakob,

Thanks for your interest. I'll send you the draft under separate cover.
Putting it on GitHub is probably the best option -- I'll try to get that
set up within the next couple of days, and announce it on the list when
I do.

Regards,
-Martin

On 8/26/20 1:04 PM, Jakob Reschke wrote:

> Hello Martin,
>
> While I probably won't be able to provide comprehensive feedback or
> even read the whole text in the near future, I would certainly be
> interested to have a look.
>
> What is the licensing status of the draft and future proposed
> standard? If it is in some plain text/markup format, is it possible to
> upload the draft to a public GitHub repository? Or something similar
> that allows for commenting on changes. On GitHub one can only comment
> on diffs, but the initial commit will add all the lines, so one could
> still comment on all of the text. Also people could provide suggested
> changes via pull requests.
>
> Kind regards,
> Jakob
>
> Am Mi., 26. Aug. 2020 um 21:20 Uhr schrieb Martin McClure
> <[hidden email]>:
>> Hi all,
>>
>> Dale let me know this morning that Tonel was being discussed on
>> Squeak-dev.  I beg your pardon for arriving late.
>>
>> As Dale said, I'm the minder of the Tonel 1.0 standard, which is
>> currently in draft, with initial feedback from some of the folks who
>> have implemented or are interested in implementing Tonel for their
>> Smalltalk dialect.
>>
>> I'm interested in getting feedback from *all* dialects who are
>> interested in using Tonel. I hope that the Squeak community will
>> participate.
>>
>> Tonel started as a collaboration between Pharo (primarily Esteban
>> Lorenzano) and GemTalk (primarily me), but the intent has always been to
>> have a format that can be used in common between *all* dialects of
>> Smalltalk. The fundamental shape of Tonel is probably not going to
>> change at this point, but feedback so far is likely to result in some
>> changes to the draft standard.
>>
>> Note that Tonel as currently implemented by Pharo is a bit different
>> from standard Tonel. Pharo has agreed to make several changes to the
>> format to standardize it. I'm not sure what the status of those changes
>> within the Pharo project. The GemStone implementation is closer to the
>> standard, though not fully there yet.
>>
>> I encourage the Squeak community to consider whether coding to the
>> standard early on might be a desirable direction. As Dale explained, the
>> standard does allow for dialect-specific properties, so adding
>> timestamps probably doesn't require any changes to the spec.
>>
>> I'd like it If a few folks from the community would volunteer to give
>> the spec a careful read-through and comment. It's a bit of a read (and
>> was quite a bit of effort to write!) so I won't post the draft on the
>> list, but it's available by request, and I need to figure out a place to
>> make it readily available.
>>
>> Regards,
>> -Martin
>>
>>
>> On 8/26/20 9:41 AM, Dale Henrichs wrote:
>>> Eliot,
>>>
>>> When you repost, could you make sure that you include a description of
>>> where the time stamps are stashed ... I'm assuming that you are adding
>>> it to the method properties (where the category is stashed) as I think
>>> that this is the right place, but it's always best not to guess:)
>>>
>>> The current crop of Tonel readers/writers do not necessarily do a good
>>> job of preserving, foreign data (IIRC, the convention is to add a
>>> platform prefix to the property name, which is the same convention
>>> used for class properties ... at GemStone we add a leading `gs_` to
>>> our property names), so until we can get all of the different Tonel
>>> readers/writers to preserve foreign properties (package, class and
>>> method) it will continue to be dicey business for preserving foreign
>>> properties in cross platform projects ...
>>>
>>> Monticello does not explicitly preserve foreign properties as the
>>> definitions get created from the native objects, so it takes some
>>> additional work to arrange to preserve foreign properties for
>>> packages, classes, and methods in the objects themselves. So it is
>>> worth considering what you will do with preserving foreign properties
>>> from other platforms.
>>>
>>> FWIW, I intend to support the preservation of foreign properties in
>>> Rowan (read that as "I haven't done that yet":)
>>>
>>> Finally, Martin McClure has started working on a spec for the next
>>> generation Tonel format ... to add a few missing pieces and tweak the
>>> format to make it possible to continue to evolve the Tonel format into
>>> the future in a somewhat sane way. If there are folks here in the
>>> Squeak community who would like to review, comment and participate in
>>> the creation of the next generation format, send me (or Martin) mail
>>> and we'll get you added to the mailing list.
>>>
>>> Dale
>>>
>>> On 8/26/20 7:15 AM, Eliot Miranda wrote:
>>>> Jakob,
>>>>
>>>>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Hi Eliot,
>>>>>
>>>>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>>>>>> <[hidden email]>:
>>>>>>
>>>>>> If we go with Tonel then we must change it to support method
>>>>>> timestamps.  I have a change set that does this (it is a trivial
>>>>>> change).  And my changes are controlled by a class variable so that
>>>>>> the same code can produce Pharo format or a slightly modified
>>>>>> format that includes method timestamps.
>>>>>>
>>>>>> What I don’t understand is why Esteban Lorenzano refuses to accept
>>>>>> my changes and allow Tonel to be used either with or without method
>>>>>> timestamps.
>>>>>>
>>>>> Method timestamps produce merge conflicts inevitably.
>>>> a) only when they change, and they change only when methods change
>>>> b) inadvertent method timestamp changes can be undone automatically
>>>> c) Squeak uses method timestamps; we have lots of tools that use
>>>> them. Dropping them just so that we can use Tonel is an example of
>>>> the tail wagging the dog. The Tonel interface must instead be made to
>>>> function with method timestamps
>>>>
>>>> If there is a decision not to support method timestamps then I will
>>>> not support the work. This is a make or break issue for me.
>>>>
>>>>> Can you re-post
>>>>> your changeset here?
>>>> I’ll post it later today (reading email in bed right now).
>>>>
>>>>> https://github.com/squeak-smalltalk/squeak-tonel/issues
>>>> OK
>>>>
>>>>> Then we could
>>>>> discuss whether to include it at least in the Squeak version. As we
>>>>> have heard from Mariano some time ago, VA Smalltalk also puts its
>>>>> dialect-specific metadata in the Tonel format, so Squeak would not be
>>>>> the first to do so.
>>>> Good.
>>>>
>>>>> Kind regards,
>>>>> Jakob
>>


Reply | Threaded
Open this post in threaded view
|

Re: Squeak, Tonel, and the Tonel standard

Kjell Godo
i realize that you want to keep the ball rolling and all
and not waste the previous efforts
but why make a special Tonel syntax ?
why not just use Smalltalk and String literals Number literals etc
then it will be easy to change
and isn’t this whole chunk format 
that shows up in Package Files
an artifact of the limited hardware of yor
or i can’t tell why they used it instead of just using Smalltalk
i can’t see why you wouldn’t just use Smalltalk instead of these ! ! bang things
and all     are there some C style hard limits that can run you afoul ?
no there are not
but this is not helping to keep the ball rolling no

On Wed, Aug 26, 2020 at 13:37 Martin McClure <[hidden email]> wrote:
Hi Jakob,

Thanks for your interest. I'll send you the draft under separate cover.
Putting it on GitHub is probably the best option -- I'll try to get that
set up within the next couple of days, and announce it on the list when
I do.

Regards,
-Martin

On 8/26/20 1:04 PM, Jakob Reschke wrote:
> Hello Martin,
>
> While I probably won't be able to provide comprehensive feedback or
> even read the whole text in the near future, I would certainly be
> interested to have a look.
>
> What is the licensing status of the draft and future proposed
> standard? If it is in some plain text/markup format, is it possible to
> upload the draft to a public GitHub repository? Or something similar
> that allows for commenting on changes. On GitHub one can only comment
> on diffs, but the initial commit will add all the lines, so one could
> still comment on all of the text. Also people could provide suggested
> changes via pull requests.
>
> Kind regards,
> Jakob
>
> Am Mi., 26. Aug. 2020 um 21:20 Uhr schrieb Martin McClure
> <[hidden email]>:
>> Hi all,
>>
>> Dale let me know this morning that Tonel was being discussed on
>> Squeak-dev.  I beg your pardon for arriving late.
>>
>> As Dale said, I'm the minder of the Tonel 1.0 standard, which is
>> currently in draft, with initial feedback from some of the folks who
>> have implemented or are interested in implementing Tonel for their
>> Smalltalk dialect.
>>
>> I'm interested in getting feedback from *all* dialects who are
>> interested in using Tonel. I hope that the Squeak community will
>> participate.
>>
>> Tonel started as a collaboration between Pharo (primarily Esteban
>> Lorenzano) and GemTalk (primarily me), but the intent has always been to
>> have a format that can be used in common between *all* dialects of
>> Smalltalk. The fundamental shape of Tonel is probably not going to
>> change at this point, but feedback so far is likely to result in some
>> changes to the draft standard.
>>
>> Note that Tonel as currently implemented by Pharo is a bit different
>> from standard Tonel. Pharo has agreed to make several changes to the
>> format to standardize it. I'm not sure what the status of those changes
>> within the Pharo project. The GemStone implementation is closer to the
>> standard, though not fully there yet.
>>
>> I encourage the Squeak community to consider whether coding to the
>> standard early on might be a desirable direction. As Dale explained, the
>> standard does allow for dialect-specific properties, so adding
>> timestamps probably doesn't require any changes to the spec.
>>
>> I'd like it If a few folks from the community would volunteer to give
>> the spec a careful read-through and comment. It's a bit of a read (and
>> was quite a bit of effort to write!) so I won't post the draft on the
>> list, but it's available by request, and I need to figure out a place to
>> make it readily available.
>>
>> Regards,
>> -Martin
>>
>>
>> On 8/26/20 9:41 AM, Dale Henrichs wrote:
>>> Eliot,
>>>
>>> When you repost, could you make sure that you include a description of
>>> where the time stamps are stashed ... I'm assuming that you are adding
>>> it to the method properties (where the category is stashed) as I think
>>> that this is the right place, but it's always best not to guess:)
>>>
>>> The current crop of Tonel readers/writers do not necessarily do a good
>>> job of preserving, foreign data (IIRC, the convention is to add a
>>> platform prefix to the property name, which is the same convention
>>> used for class properties ... at GemStone we add a leading `gs_` to
>>> our property names), so until we can get all of the different Tonel
>>> readers/writers to preserve foreign properties (package, class and
>>> method) it will continue to be dicey business for preserving foreign
>>> properties in cross platform projects ...
>>>
>>> Monticello does not explicitly preserve foreign properties as the
>>> definitions get created from the native objects, so it takes some
>>> additional work to arrange to preserve foreign properties for
>>> packages, classes, and methods in the objects themselves. So it is
>>> worth considering what you will do with preserving foreign properties
>>> from other platforms.
>>>
>>> FWIW, I intend to support the preservation of foreign properties in
>>> Rowan (read that as "I haven't done that yet":)
>>>
>>> Finally, Martin McClure has started working on a spec for the next
>>> generation Tonel format ... to add a few missing pieces and tweak the
>>> format to make it possible to continue to evolve the Tonel format into
>>> the future in a somewhat sane way. If there are folks here in the
>>> Squeak community who would like to review, comment and participate in
>>> the creation of the next generation format, send me (or Martin) mail
>>> and we'll get you added to the mailing list.
>>>
>>> Dale
>>>
>>> On 8/26/20 7:15 AM, Eliot Miranda wrote:
>>>> Jakob,
>>>>
>>>>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Hi Eliot,
>>>>>
>>>>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>>>>>> <[hidden email]>:
>>>>>>
>>>>>> If we go with Tonel then we must change it to support method
>>>>>> timestamps.  I have a change set that does this (it is a trivial
>>>>>> change).  And my changes are controlled by a class variable so that
>>>>>> the same code can produce Pharo format or a slightly modified
>>>>>> format that includes method timestamps.
>>>>>>
>>>>>> What I don’t understand is why Esteban Lorenzano refuses to accept
>>>>>> my changes and allow Tonel to be used either with or without method
>>>>>> timestamps.
>>>>>>
>>>>> Method timestamps produce merge conflicts inevitably.
>>>> a) only when they change, and they change only when methods change
>>>> b) inadvertent method timestamp changes can be undone automatically
>>>> c) Squeak uses method timestamps; we have lots of tools that use
>>>> them. Dropping them just so that we can use Tonel is an example of
>>>> the tail wagging the dog. The Tonel interface must instead be made to
>>>> function with method timestamps
>>>>
>>>> If there is a decision not to support method timestamps then I will
>>>> not support the work. This is a make or break issue for me.
>>>>
>>>>> Can you re-post
>>>>> your changeset here?
>>>> I’ll post it later today (reading email in bed right now).
>>>>
>>>>> https://github.com/squeak-smalltalk/squeak-tonel/issues
>>>> OK
>>>>
>>>>> Then we could
>>>>> discuss whether to include it at least in the Squeak version. As we
>>>>> have heard from Mariano some time ago, VA Smalltalk also puts its
>>>>> dialect-specific metadata in the Tonel format, so Squeak would not be
>>>>> the first to do so.
>>>> Good.
>>>>
>>>>> Kind regards,
>>>>> Jakob
>>




Reply | Threaded
Open this post in threaded view
|

Re: Git and Tonel (and Magritte)

Eliot Miranda-2
In reply to this post by Dale Henrichs-3
Hi Dale, Hi Martin, Hi All,

    find attached changes that allow Tonel to *optionally* support method timestamps.  This code formats the category metadata included in a Tonel source file on the same line as a method timestamp, making for something less verbose and IMO more attractive.  An example of the format is this:

{ #category : #resources, #timeStamp : 'ThierryGoubier 3\/2\/2018 19:24:09' }

MCGitTonelTests class >> gitCreateAndInitRepo: dir [
    #(#('init') #('config' 'user.email' '[hidden email]') #('config' 'user.name' 'Your Name'))
        do: [ :c | MCTonelGitRepository runGitCommand: c in: dir ]
]

I tried to get Esteban to accept these changes *as an option controlled by a preference*, so that Pharo would not have to change its format at all.  But when I tried to discuss it with him in mid 2018 and again in early 2019 I was simply rebuffed.  Esteban kept on mentioning merge conflicts when
- if Pharo has the preference disabled it will not produce the metadata and hence will not suffer merge conflicts
- a merge conflict would only be experienced had a method actually changed twice independently
Since method timestamps (when correctly implemented) only change when a method actually changes (and a smart system can undo inadvertent changes) Esteban's objection is a straw man.

Squeak introduced method timestamps and some of us like them (me very much) as a very convenient way to stamp methods.  Any source standard hoping to be widely adopted must be flexible enough to encompass important use cases of the various dialects.

On Wed, Aug 26, 2020 at 9:41 AM Dale Henrichs <[hidden email]> wrote:
Eliot,

When you repost, could you make sure that you include a description of
where the time stamps are stashed ... I'm assuming that you are adding
it to the method properties (where the category is stashed) as I think
that this is the right place, but it's always best not to guess:)

The current crop of Tonel readers/writers do not necessarily do a good
job of preserving, foreign data (IIRC, the convention is to add a
platform prefix to the property name, which is the same convention used
for class properties ... at GemStone we add a leading `gs_` to our
property names), so until we can get all of the different Tonel
readers/writers to preserve foreign properties (package, class and
method) it will continue to be dicey business for preserving foreign
properties in cross platform projects ...

Monticello does not explicitly preserve foreign properties as the
definitions get created from the native objects, so it takes some
additional work to arrange to preserve foreign properties for packages,
classes, and methods in the objects themselves. So it is worth
considering what you will do with preserving foreign properties from
other platforms.

FWIW, I intend to support the preservation of foreign properties in
Rowan (read that as "I haven't done that yet":)

Finally, Martin McClure has started working on a spec for the next
generation Tonel format ... to add a few missing pieces and tweak the
format to make it possible to continue to evolve the Tonel format into
the future in a somewhat sane way. If there are folks here in the Squeak
community who would like to review, comment and participate in the
creation of the next generation format, send me (or Martin) mail and
we'll get you added to the mailing list.

Dale

On 8/26/20 7:15 AM, Eliot Miranda wrote:
> Jakob,
>
>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]> wrote:
>>
>> Hi Eliot,
>>
>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>>> <[hidden email]>:
>>>
>>> If we go with Tonel then we must change it to support method timestamps.  I have a change set that does this (it is a trivial change).  And my changes are controlled by a class variable so that the same code can produce Pharo format or a slightly modified format that includes method timestamps.
>>>
>>> What I don’t understand is why Esteban Lorenzano refuses to accept my changes and allow Tonel to be used either with or without method timestamps.
>>>
>> Method timestamps produce merge conflicts inevitably.
> a) only when they change, and they change only when methods change
> b) inadvertent method timestamp changes can be undone automatically
> c) Squeak uses method timestamps; we have lots of tools that use them. Dropping them just so that we can use Tonel is an example of the tail wagging the dog. The Tonel interface must instead be made to function with method timestamps
>
> If there is a decision not to support method timestamps then I will not support the work. This is a make or break issue for me.
>
>> Can you re-post
>> your changeset here?
> I’ll post it later today (reading email in bed right now).
>
>> https://github.com/squeak-smalltalk/squeak-tonel/issues
> OK
>
>> Then we could
>> discuss whether to include it at least in the Squeak version. As we
>> have heard from Mariano some time ago, VA Smalltalk also puts its
>> dialect-specific metadata in the Tonel format, so Squeak would not be
>> the first to do so.
> Good.
>
>> Kind regards,
>> Jakob



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



TonelMethodTimestamps.st (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Squeak, Tonel, and the Tonel standard

David T. Lewis
In reply to this post by Martin McClure-2
Hi Martin,

Thanks for writing this. If there was such a thing as a standard
Tonel format that works correctly with Squeak, Cuis, GemStone,
and Pharo, then it sounds like a very worthwhile thing.

My only real interaction with Tonel involves publishing a couple
of packages that I develop in Squeak for the benefit of some Pharo
users. That was fine as far as it went, but beyond doing occasional
exports to that format, the Pharo implementation is basically useless
for me due to its inability to track method stamp information. This
seems like it should be a fixable problem, and if so it would be
very nice to see a standard format in circulation.

I am not a GemStone user, but I am a long time admirer of GS after
having encountered it in a project that I worked on at Ford Motor
Company back in the 1990s. Since then I have been active in Squeak,
and I would be very happy to see good interoperability between
Squeak and GS. If Tonel can help with that, great.

Dave


On Wed, Aug 26, 2020 at 12:20:02PM -0700, Martin McClure wrote:

> Hi all,
>
> Dale let me know this morning that Tonel was being discussed on
> Squeak-dev.?? I beg your pardon for arriving late.
>
> As Dale said, I'm the minder of the Tonel 1.0 standard, which is
> currently in draft, with initial feedback from some of the folks who
> have implemented or are interested in implementing Tonel for their
> Smalltalk dialect.
>
> I'm interested in getting feedback from *all* dialects who are
> interested in using Tonel. I hope that the Squeak community will
> participate.
>
> Tonel started as a collaboration between Pharo (primarily Esteban
> Lorenzano) and GemTalk (primarily me), but the intent has always been to
> have a format that can be used in common between *all* dialects of
> Smalltalk. The fundamental shape of Tonel is probably not going to
> change at this point, but feedback so far is likely to result in some
> changes to the draft standard.
>
> Note that Tonel as currently implemented by Pharo is a bit different
> from standard Tonel. Pharo has agreed to make several changes to the
> format to standardize it. I'm not sure what the status of those changes
> within the Pharo project. The GemStone implementation is closer to the
> standard, though not fully there yet.
>
> I encourage the Squeak community to consider whether coding to the
> standard early on might be a desirable direction. As Dale explained, the
> standard does allow for dialect-specific properties, so adding
> timestamps probably doesn't require any changes to the spec.
>
> I'd like it If a few folks from the community would volunteer to give
> the spec a careful read-through and comment. It's a bit of a read (and
> was quite a bit of effort to write!) so I won't post the draft on the
> list, but it's available by request, and I need to figure out a place to
> make it readily available.
>
> Regards,
> -Martin
>
>
> On 8/26/20 9:41 AM, Dale Henrichs wrote:
> >Eliot,
> >
> >When you repost, could you make sure that you include a description of
> >where the time stamps are stashed ... I'm assuming that you are adding
> >it to the method properties (where the category is stashed) as I think
> >that this is the right place, but it's always best not to guess:)
> >
> >The current crop of Tonel readers/writers do not necessarily do a good
> >job of preserving, foreign data (IIRC, the convention is to add a
> >platform prefix to the property name, which is the same convention
> >used for class properties ... at GemStone we add a leading `gs_` to
> >our property names), so until we can get all of the different Tonel
> >readers/writers to preserve foreign properties (package, class and
> >method) it will continue to be dicey business for preserving foreign
> >properties in cross platform projects ...
> >
> >Monticello does not explicitly preserve foreign properties as the
> >definitions get created from the native objects, so it takes some
> >additional work to arrange to preserve foreign properties for
> >packages, classes, and methods in the objects themselves. So it is
> >worth considering what you will do with preserving foreign properties
> >from other platforms.
> >
> >FWIW, I intend to support the preservation of foreign properties in
> >Rowan (read that as "I haven't done that yet":)
> >
> >Finally, Martin McClure has started working on a spec for the next
> >generation Tonel format ... to add a few missing pieces and tweak the
> >format to make it possible to continue to evolve the Tonel format into
> >the future in a somewhat sane way. If there are folks here in the
> >Squeak community who would like to review, comment and participate in
> >the creation of the next generation format, send me (or Martin) mail
> >and we'll get you added to the mailing list.
> >
> >Dale
> >
> >On 8/26/20 7:15 AM, Eliot Miranda wrote:
> >>Jakob,
> >>
> >>>On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]>
> >>>wrote:
> >>>
> >>>???Hi Eliot,
> >>>
> >>>>Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
> >>>><[hidden email]>:
> >>>>
> >>>>If we go with Tonel then we must change it to support method
> >>>>timestamps.?? I have a change set that does this (it is a trivial
> >>>>change).?? And my changes are controlled by a class variable so that
> >>>>the same code can produce Pharo format or a slightly modified
> >>>>format that includes method timestamps.
> >>>>
> >>>>What I don???t understand is why Esteban Lorenzano refuses to accept
> >>>>my changes and allow Tonel to be used either with or without method
> >>>>timestamps.
> >>>>
> >>>Method timestamps produce merge conflicts inevitably.
> >>a) only when they change, and they change only when methods change
> >>b) inadvertent method timestamp changes can be undone automatically
> >>c) Squeak uses method timestamps; we have lots of tools that use
> >>them. Dropping them just so that we can use Tonel is an example of
> >>the tail wagging the dog. The Tonel interface must instead be made to
> >>function with method timestamps
> >>
> >>If there is a decision not to support method timestamps then I will
> >>not support the work. This is a make or break issue for me.
> >>
> >>>Can you re-post
> >>>your changeset here?
> >>I???ll post it later today (reading email in bed right now).
> >>
> >>>https://github.com/squeak-smalltalk/squeak-tonel/issues
> >>OK
> >>
> >>>Then we could
> >>>discuss whether to include it at least in the Squeak version. As we
> >>>have heard from Mariano some time ago, VA Smalltalk also puts its
> >>>dialect-specific metadata in the Tonel format, so Squeak would not be
> >>>the first to do so.
> >>Good.
> >>
> >>>Kind regards,
> >>>Jakob
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Squeak, Tonel, and the Tonel standard

Martin McClure-2
In reply to this post by Kjell Godo
Good question. Why a thing like Tonel, instead of just Smalltalk?
The short answer is that Smalltalk doesn't have syntax for anything larger than a method.

Filetree creates one file per method, so each file can be just Smalltalk. Filetree doesn't work well for large bodies of code -- operating systems tend to allocate a minimum of 4K to each file. Since most methods are *much* shorter than 4K, most of the space is unused. If you have a million methods (and some of my customers *do* have a million methods) the space requirements are prohibitive. The answer is to put more than one method into most files.

When you start to pack more than one method into the same file, you need some kind of syntax beyond Smalltalk to tell you where each method begins and ends, and other meta-information like class definitions and whether a method is a class method or an instance method and what category it belongs in is also needed. Smalltalk doesn't have syntax for that.

Tonel tries to keep the methods themselves as much pure Smalltalk and as readable as possible. The extra syntax is needed for the things outside the methods.

Note that Tonel is *not* chunk format. Chunk format dates back to Smalltalk-80, and is not part of Tonel. No '!!' in Tonel files. :-)
Chunk format did exist for a similar reason, though, that some kind of syntax beyond Smalltalk is needed if you want to put more than one method in a file. Chunk format  was imperative for the things outside of methods (things like class definitions are essentially do-its). This has led to serious awkwardness over the years, so Tonel is entirely declarative.

Hope that helps,
-Martin

On 8/26/20 5:04 PM, Kjell Godo wrote:
i realize that you want to keep the ball rolling and all
and not waste the previous efforts
but why make a special Tonel syntax ?
why not just use Smalltalk and String literals Number literals etc
then it will be easy to change
and isn’t this whole chunk format 
that shows up in Package Files
an artifact of the limited hardware of yor
or i can’t tell why they used it instead of just using Smalltalk
i can’t see why you wouldn’t just use Smalltalk instead of these ! ! bang things
and all     are there some C style hard limits that can run you afoul ?
no there are not
but this is not helping to keep the ball rolling no

On Wed, Aug 26, 2020 at 13:37 Martin McClure <[hidden email]> wrote:
Hi Jakob,

Thanks for your interest. I'll send you the draft under separate cover.
Putting it on GitHub is probably the best option -- I'll try to get that
set up within the next couple of days, and announce it on the list when
I do.

Regards,
-Martin

On 8/26/20 1:04 PM, Jakob Reschke wrote:
> Hello Martin,
>
> While I probably won't be able to provide comprehensive feedback or
> even read the whole text in the near future, I would certainly be
> interested to have a look.
>
> What is the licensing status of the draft and future proposed
> standard? If it is in some plain text/markup format, is it possible to
> upload the draft to a public GitHub repository? Or something similar
> that allows for commenting on changes. On GitHub one can only comment
> on diffs, but the initial commit will add all the lines, so one could
> still comment on all of the text. Also people could provide suggested
> changes via pull requests.
>
> Kind regards,
> Jakob
>
> Am Mi., 26. Aug. 2020 um 21:20 Uhr schrieb Martin McClure
> <[hidden email]>:
>> Hi all,
>>
>> Dale let me know this morning that Tonel was being discussed on
>> Squeak-dev.  I beg your pardon for arriving late.
>>
>> As Dale said, I'm the minder of the Tonel 1.0 standard, which is
>> currently in draft, with initial feedback from some of the folks who
>> have implemented or are interested in implementing Tonel for their
>> Smalltalk dialect.
>>
>> I'm interested in getting feedback from *all* dialects who are
>> interested in using Tonel. I hope that the Squeak community will
>> participate.
>>
>> Tonel started as a collaboration between Pharo (primarily Esteban
>> Lorenzano) and GemTalk (primarily me), but the intent has always been to
>> have a format that can be used in common between *all* dialects of
>> Smalltalk. The fundamental shape of Tonel is probably not going to
>> change at this point, but feedback so far is likely to result in some
>> changes to the draft standard.
>>
>> Note that Tonel as currently implemented by Pharo is a bit different
>> from standard Tonel. Pharo has agreed to make several changes to the
>> format to standardize it. I'm not sure what the status of those changes
>> within the Pharo project. The GemStone implementation is closer to the
>> standard, though not fully there yet.
>>
>> I encourage the Squeak community to consider whether coding to the
>> standard early on might be a desirable direction. As Dale explained, the
>> standard does allow for dialect-specific properties, so adding
>> timestamps probably doesn't require any changes to the spec.
>>
>> I'd like it If a few folks from the community would volunteer to give
>> the spec a careful read-through and comment. It's a bit of a read (and
>> was quite a bit of effort to write!) so I won't post the draft on the
>> list, but it's available by request, and I need to figure out a place to
>> make it readily available.
>>
>> Regards,
>> -Martin
>>
>>
>> On 8/26/20 9:41 AM, Dale Henrichs wrote:
>>> Eliot,
>>>
>>> When you repost, could you make sure that you include a description of
>>> where the time stamps are stashed ... I'm assuming that you are adding
>>> it to the method properties (where the category is stashed) as I think
>>> that this is the right place, but it's always best not to guess:)
>>>
>>> The current crop of Tonel readers/writers do not necessarily do a good
>>> job of preserving, foreign data (IIRC, the convention is to add a
>>> platform prefix to the property name, which is the same convention
>>> used for class properties ... at GemStone we add a leading `gs_` to
>>> our property names), so until we can get all of the different Tonel
>>> readers/writers to preserve foreign properties (package, class and
>>> method) it will continue to be dicey business for preserving foreign
>>> properties in cross platform projects ...
>>>
>>> Monticello does not explicitly preserve foreign properties as the
>>> definitions get created from the native objects, so it takes some
>>> additional work to arrange to preserve foreign properties for
>>> packages, classes, and methods in the objects themselves. So it is
>>> worth considering what you will do with preserving foreign properties
>>> from other platforms.
>>>
>>> FWIW, I intend to support the preservation of foreign properties in
>>> Rowan (read that as "I haven't done that yet":)
>>>
>>> Finally, Martin McClure has started working on a spec for the next
>>> generation Tonel format ... to add a few missing pieces and tweak the
>>> format to make it possible to continue to evolve the Tonel format into
>>> the future in a somewhat sane way. If there are folks here in the
>>> Squeak community who would like to review, comment and participate in
>>> the creation of the next generation format, send me (or Martin) mail
>>> and we'll get you added to the mailing list.
>>>
>>> Dale
>>>
>>> On 8/26/20 7:15 AM, Eliot Miranda wrote:
>>>> Jakob,
>>>>
>>>>> On Aug 26, 2020, at 2:45 AM, Jakob Reschke <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Hi Eliot,
>>>>>
>>>>>> Am Mi., 26. Aug. 2020 um 11:20 Uhr schrieb Eliot Miranda
>>>>>> <[hidden email]>:
>>>>>>
>>>>>> If we go with Tonel then we must change it to support method
>>>>>> timestamps.  I have a change set that does this (it is a trivial
>>>>>> change).  And my changes are controlled by a class variable so that
>>>>>> the same code can produce Pharo format or a slightly modified
>>>>>> format that includes method timestamps.
>>>>>>
>>>>>> What I don’t understand is why Esteban Lorenzano refuses to accept
>>>>>> my changes and allow Tonel to be used either with or without method
>>>>>> timestamps.
>>>>>>
>>>>> Method timestamps produce merge conflicts inevitably.
>>>> a) only when they change, and they change only when methods change
>>>> b) inadvertent method timestamp changes can be undone automatically
>>>> c) Squeak uses method timestamps; we have lots of tools that use
>>>> them. Dropping them just so that we can use Tonel is an example of
>>>> the tail wagging the dog. The Tonel interface must instead be made to
>>>> function with method timestamps
>>>>
>>>> If there is a decision not to support method timestamps then I will
>>>> not support the work. This is a make or break issue for me.
>>>>
>>>>> Can you re-post
>>>>> your changeset here?
>>>> I’ll post it later today (reading email in bed right now).
>>>>
>>>>> https://github.com/squeak-smalltalk/squeak-tonel/issues
>>>> OK
>>>>
>>>>> Then we could
>>>>> discuss whether to include it at least in the Squeak version. As we
>>>>> have heard from Mariano some time ago, VA Smalltalk also puts its
>>>>> dialect-specific metadata in the Tonel format, so Squeak would not be
>>>>> the first to do so.
>>>> Good.
>>>>
>>>>> Kind regards,
>>>>> Jakob
>>