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 |
> 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? |
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? |
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? > > > > |
> 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? >> >> >> >> > > > |
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 |
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 |
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 |
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 > |
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 > > > > |
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 >> |
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, |
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, _,,,^..^,,,_ best, Eliot TonelMethodTimestamps.st (5K) Download Attachment |
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 > > > > |
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:
|
Free forum by Nabble | Edit this page |