Whilst checking things after installing Seaside and Cryptography I noticed that there are a couple of dangling Undeclareds that lead into some faulty loaded code.
'home' and 'startpc' are referenced in BlockContext>>#tempVarRefs. This is not too much of a problem since there are no senders but since there are also a bunch of methods loaded into the no longer used Context/BlockContext/MethodContext classes it might be an indicator of some updating needed in the Grease package, specifically *grease-squeak5-core. I don't know who looks after this, so if anyone does, please pass it on. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim The next generation of computers will have a "Warranty Expired" interrupt. |
On Thu, May 28, 2020 at 01:01:55PM -0700, tim Rowledge wrote:
> Whilst checking things after installing Seaside and Cryptography I noticed that there are a couple of dangling Undeclareds that lead into some faulty loaded code. > > 'home' and 'startpc' are referenced in BlockContext>>#tempVarRefs. This is not too much of a problem since there are no senders but since there are also a bunch of methods loaded into the no longer used Context/BlockContext/MethodContext classes it might be an indicator of some updating needed in the Grease package, specifically *grease-squeak5-core. I don't know who looks after this, so if anyone does, please pass it on. > The grease package is one of those things that we, the Squeak community, need to take more responsibility for. If anyone is looking for a worthwhile Sunday Squeaker project, this would be a good one. Dave |
> On May 28, 2020, at 1:08 PM, David T. Lewis <[hidden email]> wrote: > > On Thu, May 28, 2020 at 01:01:55PM -0700, tim Rowledge wrote: >> Whilst checking things after installing Seaside and Cryptography I noticed that there are a couple of dangling Undeclareds that lead into some faulty loaded code. >> >> 'home' and 'startpc' are referenced in BlockContext>>#tempVarRefs. This is not too much of a problem since there are no senders but since there are also a bunch of methods loaded into the no longer used Context/BlockContext/MethodContext classes it might be an indicator of some updating needed in the Grease package, specifically *grease-squeak5-core. I don't know who looks after this, so if anyone does, please pass it on. >> > > The grease package is one of those things that we, the Squeak community, > need to take more responsibility for. If anyone is looking for a worthwhile > Sunday Squeaker project, this would be a good one. I agree. So here I am trying to do this, and running into obstacles. :( The Grease repo is in Cypress format, which I have no experience with. I have some experience with FileTree, but Cypress seems different. So, I thought I would try out Squot and the Git Browser, because they support Cypress. But now I'm having trouble with the Git Browser, and I don't know if this list is the place to talk about it. Am I doing something wrong? Or are these bugs I should file issues at Squot's GitHub repo? I'm having three or four issues. 1) if I load Grease into my image using [1], then I also clone the Grease repo from [2] in Git Browser as a new project, then the timestamps on the methods are different between what Squot is looking at and what is in the image. So I don't get a clean record of what has actually changed in my image. Do I need to load Grease from what Squot knows/handles, instead of [1], so I don't get different timestamps in methods? If so, how? (Actually this begs the question, why are method timestamps being changed to the moment the method is being loaded into my image, instead of retaining their original timestamp? Is this a Cypress thing?) I don't remember this being an issue with Monticello; in MC, method timestamps come in with the method, and don't change to the time the method was loaded, right? MCModification obsoletion timeStamp = ' 7/30/2020 22:03:37' modification timeStamp = ' 7/30/2020 22:01:38' 2) When I delete the *extension method category "*grease-squeak5-core" from BlockContext and create my commit, carefully Cmd-X'ing the methods that only have a different timestamp, there becomes two issues with my actual commit: 2a) All the *Extensions methods are still part of my commit, even though I Cmd-X'd all but one of them (do I recall right that this this a Monticello bug/feature? It's all *Extensions or none?) 2b) When I menu-click my commit in Git Browser and "compare with parent commit," my commit now shows the method timestamps as being different in a different way: the /time/ is the same, but now one method has a leading space in its string and one doesn't: MCModification obsoletion timeStamp = ' 7/30/2020 20:27:03' modification timeStamp = '7/30/2020 20:27:03' 3) If I try to checkout a new branch off the top commit, or off a package, I eventually end up with a Warning dialog that contains this: This package depends on the following classes: TBehavior You must resolve these dependencies before you will be able to load these definitions: TBehavior>>fullName I can click Proceed a dozen times, but eventually I get to a DNU. ... So, I don't really know what to do. What am I doing wrong? Should I file a bug report or two with Squot? Learn Cypress? Hmm. A basic way to set up a test case is (not sure if order matters?): 1) Fresh 5.3 image, load Git Browser 2) In Git Browser, tell it not to "add my first project now"; I will menu-click, clone project, enter https://github.com/SeasideSt/Grease.git, create a new folder, watch in awe as it gets checked out (this is cool!) 3) load Grease via [1] 4) Try something like: 4a) menu-click 'repository/Grease-Squeak5-Core.package' and then Checkout, and inspect the diffs to see the different timestamps 4b) "Create new branch at this commit" (I just tried this, got "Key not found: repository/Grease-Core.package") 4c) remove (Cmd-X) BlockContext's "*grease-squeak5-core" method category, then (wow, I just did this, and it actually resulted in a EXC_CRASH in copyToOldSpacebytesformat + 90 (gcc3x-cointerp.c:40614), old VM 5.0.201811061137) Hmm. I'm no stranger to Git, nor a stranger to Monticello, but this is all new. Thanks, Tim [1] Metacello new baseline: 'Grease'; githubUser: 'SeasideSt' project: 'Grease' commitish: 'master' path: 'repository'; load |
Hi Tim,
The repository has method metadata disabled: https://github.com/SeasideSt/Grease/blob/master/repository/.filetree Hence there is no timestamp information with the source and the Squeak implementation currently seems to fall back to use the load timestamp. Under these circumstances I think it would also be of no advantage to clone and load with the Git Browser directly instead of first loading via Metacello (which at least also pulls the dependencies, if any). The Git Browser uses Monticello under the hood to read and write packages, so the hunt for the variable amount of spaces needs to be sought there, or rather in the FileTree and Cypress classes. Cypress is slightly different from FileTree, but so far I did not have problems treating them basically like the same thing. If I am not mistaken, first Dale created FileTree, later at some conference or so several people decided on a common format for inter-Smalltalk exchange based on FileTree and called the result Cypress. Today we have Tonel in the game, so I guess not many people will call for Cypress anymore. TBehavior is a Pharo trait. Pharo refactored some parts of the basic class library to use traits. My guess is that there are packages in the repository that are not supposed to be loaded in Squeak (not a surprise for something like Grease), but Squot does not know about that and tries to load all the packages. You would currently have to exclude the additions of the non-Squeak packages in the load/merge dialog. For the issue that you excluded the extension methods in the commit dialog (with cmd-x), but some of them were committed nevertheless, please file a bug report in for Squot on GitHub with the details and a reference to the published commit (if it is public). Even if this should be a peculiarity of the underlying Monticello, it is at least unexpected to me. https://github.com/hpi-swa/Squot/issues/ Kind regards, Jakob Am Fr., 31. Juli 2020 um 07:59 Uhr schrieb Tim Johnson <[hidden email]>: > > > > On May 28, 2020, at 1:08 PM, David T. Lewis <[hidden email]> wrote: > > > > On Thu, May 28, 2020 at 01:01:55PM -0700, tim Rowledge wrote: > >> Whilst checking things after installing Seaside and Cryptography I noticed that there are a couple of dangling Undeclareds that lead into some faulty loaded code. > >> > >> 'home' and 'startpc' are referenced in BlockContext>>#tempVarRefs. This is not too much of a problem since there are no senders but since there are also a bunch of methods loaded into the no longer used Context/BlockContext/MethodContext classes it might be an indicator of some updating needed in the Grease package, specifically *grease-squeak5-core. I don't know who looks after this, so if anyone does, please pass it on. > >> > > > > The grease package is one of those things that we, the Squeak community, > > need to take more responsibility for. If anyone is looking for a worthwhile > > Sunday Squeaker project, this would be a good one. > > I agree. So here I am trying to do this, and running into obstacles. :( > > The Grease repo is in Cypress format, which I have no experience with. I have some experience with FileTree, but Cypress seems different. > > So, I thought I would try out Squot and the Git Browser, because they support Cypress. > > But now I'm having trouble with the Git Browser, and I don't know if this list is the place to talk about it. Am I doing something wrong? Or are these bugs I should file issues at Squot's GitHub repo? > > I'm having three or four issues. > > 1) if I load Grease into my image using [1], then I also clone the Grease repo from [2] in Git Browser as a new project, then the timestamps on the methods are different between what Squot is looking at and what is in the image. So I don't get a clean record of what has actually changed in my image. Do I need to load Grease from what Squot knows/handles, instead of [1], so I don't get different timestamps in methods? If so, how? (Actually this begs the question, why are method timestamps being changed to the moment the method is being loaded into my image, instead of retaining their original timestamp? Is this a Cypress thing?) I don't remember this being an issue with Monticello; in MC, method timestamps come in with the method, and don't change to the time the method was loaded, right? > > MCModification > obsoletion timeStamp = ' 7/30/2020 22:03:37' > modification timeStamp = ' 7/30/2020 22:01:38' > > 2) When I delete the *extension method category "*grease-squeak5-core" from BlockContext and create my commit, > carefully Cmd-X'ing the methods that only have a different timestamp, there becomes two issues with my actual commit: > 2a) All the *Extensions methods are still part of my commit, even though I Cmd-X'd all but one of them (do I recall right that this this a Monticello bug/feature? It's all *Extensions or none?) > 2b) When I menu-click my commit in Git Browser and "compare with parent commit," my commit now shows the method timestamps as being different in a different way: the /time/ is the same, but now one method has a leading space in its string and one doesn't: > > MCModification > obsoletion timeStamp = ' 7/30/2020 20:27:03' > modification timeStamp = '7/30/2020 20:27:03' > > 3) If I try to checkout a new branch off the top commit, or off a package, I eventually end up with a Warning dialog that contains this: > > This package depends on the following classes: > TBehavior > You must resolve these dependencies before you will be able to load these definitions: > TBehavior>>fullName > > I can click Proceed a dozen times, but eventually I get to a DNU. > > > ... > So, I don't really know what to do. What am I doing wrong? Should I file a bug report or two with Squot? Learn Cypress? Hmm. > > > A basic way to set up a test case is (not sure if order matters?): > > 1) Fresh 5.3 image, load Git Browser > 2) In Git Browser, tell it not to "add my first project now"; I will menu-click, clone project, enter https://github.com/SeasideSt/Grease.git, create a new folder, watch in awe as it gets checked out (this is cool!) > 3) load Grease via [1] > 4) Try something like: > 4a) menu-click 'repository/Grease-Squeak5-Core.package' and then Checkout, and inspect the diffs to see the different timestamps > 4b) "Create new branch at this commit" (I just tried this, got "Key not found: repository/Grease-Core.package") > 4c) remove (Cmd-X) BlockContext's "*grease-squeak5-core" method category, then (wow, I just did this, and it actually resulted in a EXC_CRASH in copyToOldSpacebytesformat + 90 (gcc3x-cointerp.c:40614), old VM 5.0.201811061137) > > Hmm. I'm no stranger to Git, nor a stranger to Monticello, but this is all new. > > Thanks, > Tim > > > [1] Metacello new > baseline: 'Grease'; > githubUser: 'SeasideSt' project: 'Grease' commitish: 'master' path: 'repository'; > load > > |
Hi Jakob,
Thanks for the help, pointers, and ideas. I was having trouble last night using Squeak's native Monticello tooling to access the FileTree/Cypress repo. That is why I tried Git Browser (and I will continue to experiment with it). This morning, with some fresh coffee, a fresh image, and a fresh "Installer ensureRecentMetacello", those troubles have gone away. I have filed ... erm, not really a bug or issue, but inquiry, hoping Dale and/or someone else might be generous enough with their time to help direct/guide w/r/t to timeStamps and diffs: https://github.com/dalehenrich/filetree/issues/228 I'd also like to learn how to load packages (programmatically) via Metacello from a local repo or working copy on disk, rather than cloning fresh from an URL-based GitHub repo. Not sure where to start, there, or if you have any pointers. I will come up with a (hopefully) replicable test case for the extension methods and file a bug with Squot as you suggest. Thanks again, Tim On Jul 31, 2020, at 7:24 AM, Jakob Reschke wrote: > Hi Tim, > > The repository has method metadata disabled: > https://github.com/SeasideSt/Grease/blob/master/repository/.filetree > > Hence there is no timestamp information with the source and the Squeak > implementation currently seems to fall back to use the load timestamp. > Under these circumstances I think it would also be of no advantage to > clone and load with the Git Browser directly instead of first loading > via Metacello (which at least also pulls the dependencies, if any). > > The Git Browser uses Monticello under the hood to read and write > packages, so the hunt for the variable amount of spaces needs to be > sought there, or rather in the FileTree and Cypress classes. > > Cypress is slightly different from FileTree, but so far I did not have > problems treating them basically like the same thing. If I am not > mistaken, first Dale created FileTree, later at some conference or so > several people decided on a common format for inter-Smalltalk exchange > based on FileTree and called the result Cypress. Today we have Tonel > in the game, so I guess not many people will call for Cypress anymore. > > TBehavior is a Pharo trait. Pharo refactored some parts of the basic > class library to use traits. My guess is that there are packages in > the repository that are not supposed to be loaded in Squeak (not a > surprise for something like Grease), but Squot does not know about > that and tries to load all the packages. You would currently have to > exclude the additions of the non-Squeak packages in the load/merge > dialog. > > For the issue that you excluded the extension methods in the commit > dialog (with cmd-x), but some of them were committed nevertheless, > please file a bug report in for Squot on GitHub with the details and a > reference to the published commit (if it is public). Even if this > should be a peculiarity of the underlying Monticello, it is at least > unexpected to me. > > https://github.com/hpi-swa/Squot/issues/ > > Kind regards, > Jakob > > Am Fr., 31. Juli 2020 um 07:59 Uhr schrieb Tim Johnson <[hidden email] > >: >> >> >>> On May 28, 2020, at 1:08 PM, David T. Lewis <[hidden email]> >>> wrote: >>> >>> On Thu, May 28, 2020 at 01:01:55PM -0700, tim Rowledge wrote: >>>> Whilst checking things after installing Seaside and Cryptography >>>> I noticed that there are a couple of dangling Undeclareds that >>>> lead into some faulty loaded code. >>>> >>>> 'home' and 'startpc' are referenced in >>>> BlockContext>>#tempVarRefs. This is not too much of a problem >>>> since there are no senders but since there are also a bunch of >>>> methods loaded into the no longer used Context/BlockContext/ >>>> MethodContext classes it might be an indicator of some updating >>>> needed in the Grease package, specifically *grease-squeak5-core. >>>> I don't know who looks after this, so if anyone does, please pass >>>> it on. >>>> >>> >>> The grease package is one of those things that we, the Squeak >>> community, >>> need to take more responsibility for. If anyone is looking for a >>> worthwhile >>> Sunday Squeaker project, this would be a good one. >> >> I agree. So here I am trying to do this, and running into >> obstacles. :( >> >> The Grease repo is in Cypress format, which I have no experience >> with. I have some experience with FileTree, but Cypress seems >> different. >> >> So, I thought I would try out Squot and the Git Browser, because >> they support Cypress. >> >> But now I'm having trouble with the Git Browser, and I don't know >> if this list is the place to talk about it. Am I doing something >> wrong? Or are these bugs I should file issues at Squot's GitHub >> repo? >> >> I'm having three or four issues. >> >> 1) if I load Grease into my image using [1], then I also clone the >> Grease repo from [2] in Git Browser as a new project, then the >> timestamps on the methods are different between what Squot is >> looking at and what is in the image. So I don't get a clean record >> of what has actually changed in my image. Do I need to load Grease >> from what Squot knows/handles, instead of [1], so I don't get >> different timestamps in methods? If so, how? (Actually this begs >> the question, why are method timestamps being changed to the moment >> the method is being loaded into my image, instead of retaining >> their original timestamp? Is this a Cypress thing?) I don't >> remember this being an issue with Monticello; in MC, method >> timestamps come in with the method, and don't change to the time >> the method was loaded, right? >> >> MCModification >> obsoletion timeStamp = ' 7/30/2020 22:03:37' >> modification timeStamp = ' 7/30/2020 22:01:38' >> >> 2) When I delete the *extension method category "*grease-squeak5- >> core" from BlockContext and create my commit, >> carefully Cmd-X'ing the methods that only have a different >> timestamp, there becomes two issues with my actual commit: >> 2a) All the *Extensions methods are still part of my commit, even >> though I Cmd-X'd all but one of them (do I recall right that this >> this a Monticello bug/feature? It's all *Extensions or none?) >> 2b) When I menu-click my commit in Git Browser and "compare with >> parent commit," my commit now shows the method timestamps as being >> different in a different way: the /time/ is the same, but now one >> method has a leading space in its string and one doesn't: >> >> MCModification >> obsoletion timeStamp = ' 7/30/2020 20:27:03' >> modification timeStamp = '7/30/2020 20:27:03' >> >> 3) If I try to checkout a new branch off the top commit, or off a >> package, I eventually end up with a Warning dialog that contains >> this: >> >> This package depends on the following classes: >> TBehavior >> You must resolve these dependencies before you will be able to load >> these definitions: >> TBehavior>>fullName >> >> I can click Proceed a dozen times, but eventually I get to a DNU. >> >> >> ... >> So, I don't really know what to do. What am I doing wrong? Should >> I file a bug report or two with Squot? Learn Cypress? Hmm. >> >> >> A basic way to set up a test case is (not sure if order matters?): >> >> 1) Fresh 5.3 image, load Git Browser >> 2) In Git Browser, tell it not to "add my first project now"; I >> will menu-click, clone project, enter https://github.com/SeasideSt/Grease.git >> , create a new folder, watch in awe as it gets checked out (this is >> cool!) >> 3) load Grease via [1] >> 4) Try something like: >> 4a) menu-click 'repository/Grease-Squeak5-Core.package' and then >> Checkout, and inspect the diffs to see the different timestamps >> 4b) "Create new branch at this commit" (I just tried this, got "Key >> not found: repository/Grease-Core.package") >> 4c) remove (Cmd-X) BlockContext's "*grease-squeak5-core" method >> category, then (wow, I just did this, and it actually resulted in a >> EXC_CRASH in copyToOldSpacebytesformat + 90 (gcc3x-cointerp.c: >> 40614), old VM 5.0.201811061137) >> >> Hmm. I'm no stranger to Git, nor a stranger to Monticello, but >> this is all new. >> >> Thanks, >> Tim >> >> >> [1] Metacello new >> baseline: 'Grease'; >> githubUser: 'SeasideSt' project: 'Grease' commitish: 'master' >> path: 'repository'; >> load >> >> > > > |
Free forum by Nabble | Edit this page |