-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256 Hi, As an experiment I'm trying to load Metacello/Seaside in Squeak 4.6. (using the VM squeak 4.19.2) (image is 4.6 update #15117) I'm following the instructions from https://github.com/Metacello/metacello#squeak-older-than-squeak52 After Loaded -> Metacello-FileTree-dkh.29 --- http://seaside.gemtalksystems.com/ss/metacello --- cache Loaded -> Metacello-GitHub-dkh.29 --- http://smalltalkhub.com/mc/dkh/metacello/main --- cache Evaluated -> 1.0-beta.32.3 [ConfigurationOfMetacello] >> metacelloPrimeRegistry ...finished 1.0-beta.32.3 I'm trying to evaluate the piece of code: "Load the Preview version of Metacello from GitHub" (Smalltalk at: #Metacello) new configuration: 'MetacelloPreview'; version: #stable; repository: 'github://Metacello/metacello:configuration'; load. Unfortunately I get the following error: Could not resolve: ConfigurationOfMetacelloPreview [ConfigurationOfMetacelloPreview] in ../squeak/package-cache github://Metacello/metacello:configuration ERROR: 'GoferRepositoryError: can''t find EOCD position' Any idea please what this "can't find EOCD position' is about ? Perhaps this is Squeak 4.6 specific, as in Squeak 6.0alpha it seems to work, with the image I get stuff like Fetched -> Metacello-Core-EstebanLorenzano.833 --- github://Metacello/metacello:master/repository --- github://Metacello/metacello:master/repository and I'm under the impression that the Squeak 6 step of Installer ensureRecentMetacello. is succesful for me in Squeak 6.0 alpha latest update: #20077 However from the docs at https://github.com/Metacello/metacello#squeak-older-than-squeak52 I'm under the impression that it is supposed to work with Squeak < 5.2 (such as Squeak 4.6) Thanks! David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJfvoDrAAoJEAwpOKXMq1Ma3YYIAK2Pq83iMkVZGd1koVNEs8zm 2BXq11qpdameSQHCzchwcv6+9LNctIXPRFcwD0VY/K4aYE/+Or+5RsCM8KKpcbgp C7gQ3b16qxhqaGKSBO9BkD86NDsF8tp3xLDdr1Zjziz2mHcNQSPMSTZei76cEKn0 /M/vZKwhFlOQ2g3nlKEPLkVOBwFkchh6Z0JWJrz3n9Lt6g3wnjpVX4s/3MwFZ0xH 6opsWqSmVT3lZBpc/o7tb0v4Frk5wcULNzBH4Tc3irwFcyWl0HEo6ITQM6YoGfJD tlm4it5rlQAsDKCG3PklrM1ZqCuo4MztSEJrPWMQuNpHhhbGMgLqH7ZH/P9QOzU= =ZGyt -----END PGP SIGNATURE----- |
On Wed, Nov 25, 2020 at 05:07:53PM +0100, [hidden email] wrote:
> > Unfortunately I get the following error: > > Could not resolve: ConfigurationOfMetacelloPreview [ConfigurationOfMetacelloPreview] in ../squeak/package-cache github://Metacello/metacello:configuration ERROR: 'GoferRepositoryError: can''t find EOCD position' > > Any idea please what this "can't find EOCD position' is about ? > > Perhaps this is Squeak 4.6 specific, as in Squeak 6.0alpha it seems to work, > with the image > It means that something went wrong trying to unpack a ZIP archive (such as an MCZ file, which is in ZIP format). The error message is slightly less horrible in images after 4.6. Occasionally you may have an empty or corrupt file in your ./package-cache/ directory that leads to this error message. If so, you can just delete the contents of your ./package-cache/ and things will return to normal. If you happen to be running your 4.6 image in a different directory than other images, then it may appear as if the error condition is associated with that version of the image. Dave |
In reply to this post by stes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256 Thanks for your help. I should mention that I'm doing this on a totally unsupported OS/Squeak version. Obviously https://github.com/Metacello/metacello/blob/master/.travis.yml mentions Linux and Squeak 5+ but I'm using Solaris 11 and Squeak 4. I wasn't aware of the package-cache directory, I moved it and tried again. But the same error ... Despite the error I seem to be able to continue. The encouraging thing is that the step "Now load latest version of Metacello" (Smalltalk at: #Metacello) new baseline: 'Metacello'; repository: 'github://Metacello/metacello:master/repository'; get. (Smalltalk at: #Metacello) new baseline: 'Metacello'; repository: 'github://Metacello/metacello:master/repository'; load. seems to work. So I'll give it a try with Seaside and see how far I get. Thanks, David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJfv3K0AAoJEAwpOKXMq1MaH1MH/RcvZHDuWrJqiI0VHVL/kWwu uoCxf5J0ioKwpv1KZPzFmKZEf3krwjPP77Jm3HoBIRcTzHWpzFNbymhSSKRUTt1N ip6dqgNG7vxJvmtcFZ2xfkD1bG0Y2dxrw6CgD1F9AJNOTTh7YfRJAj3dJnA3CKdN h1np1xwltZdTE/9Lkml/+IV80fjErJwt3ZDQjAzpn7TbXKKvK3UokGo0Y6EjlyDB R3CiWYtiiKSgJG28Oii0/JCVrIQhQKbU3cFEFCOfo8wSZ32yc3yFiqhhMzN61AIf 172l8nTCokh28uJaVkfFabt4dvy0Pz/f45kgU32liIUOM1u/l0rzLHm1FmsBzmI= =paQE -----END PGP SIGNATURE----- |
On Thu, Nov 26, 2020 at 10:19:16AM +0100, [hidden email] wrote:
> > I should mention that I'm doing this on a totally unsupported OS/Squeak version. > > Obviously https://github.com/Metacello/metacello/blob/master/.travis.yml > mentions Linux and Squeak 5+ but I'm using Solaris 11 and Squeak 4. > > I wasn't aware of the package-cache directory, I moved it and tried again. > > But the same error ... > It may help if you use the newer version of ZipArchive>>readFrom: from newer Squeak images, and put that in your Squeak 4 image. This will show (if possible) the name of the file or stream that had the "cannot find EOCD position" problem. Note, you can find this method by highlighting "EOCD position" in a workspace, then search "method strings with it" which is hidden toward the end of the menu options (so you may not have noticed it). Dave |
In reply to this post by stes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256 Thanks for the suggestion. I will try a newer version of ZipArchive>>readFrom: By the way, sorry to spam this list with Seaside questions, but it's also a little bit of a Squeak question, given the fact that I'm trying to load Seaside on Squeak 4.19.2 Note that I think that Metacello loaded (despite the error). I can go ahead and do for example: Metacello new configuration:'Seaside3'; repository: 'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main'; version: #'release3.1'; load I think the above succesfully loaded Seaside version 3.1.4.3 (after lots and lots loading messages). The reason why I'm trying release3.1 is because with the default Metacello new baseline:'Seaside3'; repository: 'github://SeasideSt/Seaside:master/repository'; load I'm having some other errors: Warning: This package depends on the following classes: GRDynamicVariable You must resolve these dependencies before you will be able to load these definitions: WACurrentExceptionHandler WACurrentRequestContext WACurrentRequestContext class>>defaultValue WADynamicVariable click on Proceed MessageNotUnderstood: Character>>greaseInteger I've done some research on "greaseInteger" (funny name if you ask me) http://forum.world.st/MNU-Character-gt-gt-greaseInteger-when-loading-Seaside-in-Squeak-Trunk-td4922096.html So others have seen the greaseInteger error as well. However when I load #'release 3.1' it seems to load nicely without errors .. After loading I can find a method greaseInteger (which is something of Seaside I think) under Browser -> Character -> instance methods -> *grease-pharo-core greaseInteger "Answer an unicode code point of the receiver." ^ self charCode I'm a newbie in this but I think *grease-pharo-core looks like some sort of category of messages that a package has been adding to the Character class. So I suspect greaseInteger is some sort of message that loading Seaside, added to the Character class. What is the correct term in Smalltalk / Squeak to call the string *grease-pharo-core ?? it's a set of messages . For example under "accessing" you can find asciiValue, charCode, codePoint, digitValue, encodedCharSet, leadingChar. What is the correct term for "accessing" or "*grease-pharo-core" ? (set of messages that you can see in the Browser for that class) Thanks, David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJfv+ZhAAoJEAwpOKXMq1MaJ6EIAIXJlyqpWmi1nz/Q/snpYzQZ l/G7SLqugzBR29xXj7GoMlHa674E7+BOPHtGONj+JxI8TtCbS7G27SZUV1gFlobC AwliazW7qXChGrhfnMYTBkDRCXxxxRIhsaZUsNaI87rwpv6WkbR0EM1RBgOVNTva 7AT0mh3Yb8yTLF6aGquPzqWQ5bQCndGTBlgw+98HEJVf2dktOOfiRnbGVvj5QxrT UFKB6KZlkr2iYGx/REk5WX0rQ8uFfdQCL2d0fWd5dCGzWhv6hM7KuDDmndx56+4h RPbJfaDgq09q1SVX+a+5rvCu+SsRm1ao0qCiCBEkakVjVQ/kWzIF+rv+gmYrq00= =KB/L -----END PGP SIGNATURE----- |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256 In the Squeak 4.5 #15117 image, under Browser->ZipArchive->readFrom: eocdPosition <= 0 ifTrue: [self error: 'can''t find EOCD position']. Under "Versions" it is indicated: nk 12/06/2002 17:09 ZipArchive readFrom: {reading} In the Squeak6.0alpha #20077 image, ZipArchive readFrom: has under "Versions": dtl 9/28/2017 20:31 ZipArchive readFrom: {reading} So I just copy paste that implementation into the 4.6 image and accept it. If there is a better way to do it, I would be interested to learn about it. Perhaps there is a clever way to file in methods from a different image. The 2017 version issues: eocdPosition <= 0 ifTrue: [self error: self class name, ' cannot find EOCD position in ', aStreamOrFileName name]. So after my change the "prettyDiffs" shows a difference for the error: line, in the implementation of the readFrom: message. Now -- using the new readFrom: implementation for ZipArchive -- to come back to the original problem when loading Metacello. "Load the Preview version of Metacello from GitHub" (Smalltalk at: #Metacello) new configuration: 'MetacelloPreview'; version: #stable; repository: 'github://Metacello/metacello:configuration'; load. results in: Could not resolve: ConfigurationOfMetacelloPreview [ConfigurationOfMetacelloPreview] in (..)/package-cache github://Metacello/metacello:configuration ERROR: 'GoferRepositoryError: ZipArchive cannot find EOCD position in /tmp/github-Metacellometacelloconfiguration.zip' There is a file in /tmp that is probably corrupt: bash-4.4$ ls -l /tmp/github-Metacellometacelloconfiguration.zip - -rw-r--r-- 1 stes users 845 Nov 27 10:58 /tmp/github-Metacellometacelloconfiguration.zip When trying to unzip that file from the UNIX command line: bash-4.4$ unzip github-Metacellometacelloconfiguration.zip Archive: github-Metacellometacelloconfiguration.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. I'll have to give this issue a try under a different SqueakVM. Perhaps it's just not working, I suspect issues as the gemsource method, are crossplatform bugs. Anyway - despite the above - I can continue, and I can load Metacello, and even Seaside #release 3.1. Loading Seaside #release 3.1 by Metacello works. Remember that I had to fix the URL in the Installer gemsource method. I changed the gemsource message to use the URL: gemsource.com changed to gemtalksystems.com I suspect such a change clearly must be indicating a cross-platform bug. So perhaps it has not been tested for a long time with Squeak 4. Or Squeak 4.6 is simply not supported by the Seaside folks. They have an old Seaside 2.6, 2.7, 2.8 on their github site, but I don't immediately see instructions for the 2.x, everything is about Seaside3. Perhaps Seaside 2.x had better support for Squeak 4. Regards, David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJfwSY7AAoJEAwpOKXMq1MaoVwH/R8W0wNz0HE0hiJNW70/QzvG KzliKzWWhneDbnoNpQwm4aNPbW8Vqv/DpEwGIIYGuhVceuspwzpXTqcyA0bJY55J uVe5tAtVvM/FwDnZOQaPXlv4GhdjuLAVrGQ6PPNRL1auMR30gWTO/dq/ctoEycum Iz62am1p9Gfe0kgsHUwzuO/r8ceg95EOfGEmdrkBxUJG6J6+2aZKqh8/zqUjYnVf RvGHSSxmUk8MzYhFrPg4O9CADMDGG8569nY06IYFVwMv81uM7grlnrslGa5h8iDp S7P8SQccUp37okG0Kc4tfrM9TwoQminBp0oocDIT9emCxCXVWxJ/K6SJ54V/49o= =prFY -----END PGP SIGNATURE----- |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256 In the "Squeak-4.6-All-in-One.app" I can see the same problem on Microsoft Windows: First it is necessary to change/update: gemsource ^ self monticello http: 'http://seaside.gemtalksystems.com/ss' This by itself is already extremely suspicious, as it shows that the Squeak4.6 image has an incorrect URL for gemstone (gemsource). Next: "Load the Preview version of Metacello from GitHub" (Smalltalk at: #Metacello) new configuration: 'MetacelloPreview'; version: #stable; repository: 'github://Metacello/metacello:configuration'; load. results also on Microsoft Windows in : Could not resolve: ConfigurationOfMetacelloPreview [ConfigurationOfMetacelloPreview] in C:\Users\stes\squeak\Squeak-4.6-All-in-One\Squeak-4.6-All-in-One\Squeak-4.6-All-in-One.app\Contents\Resources\package-cache github://Metacello/metacello:configuration ERROR: 'GoferRepositoryError: can''t find EOCD position' This is with the following VM: Image - ----- C:\Users\stes\squeak\Squeak-4.6-All-in-One\Squeak-4.6-All-in-One\Squeak-4.6-All-in-One.app\Contents\Resources\Squeak4.6-15102.image Squeak4.6 latest update: #15117 Current Change Set: Unnamed1 Image format 6505 (32 bit) Virtual Machine - --------------- C:\Users\stes\squeak\Squeak-4.6-All-in-One\Squeak-4.6-All-in-One\Squeak-4.6-All-in-One.app\Contents\LinuxAndWindows\Squeak.exe Croquet Closure Cog[SqueakV3] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1405] Win32 built on Jul 6 2015 15:45:27 PDT Compiler: 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) platform sources revision VM: r3397 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2015-07-06 11:56:39 -0700 Plugins: r3347 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.1405 uuid: 7aff388a-73ba-4202-bb5a-72b0759ff46b Jul 6 2015 StackToRegisterMappingCogit VMMaker.oscog-eem.1401 uuid: 036f0933-639a-49dd-8a1d-a03bcdcb0a0a Jul 6 2015 So basically it seems the current Metacello *CAN* be used with Squeak4.6, but there are some issues with it. Perhaps an older Metacello should be used with Squeak 4.6 ... However the instructions at https://github.com/Metacello/metacello#squeak-older-than-squeak52 seem to imply that it should work on "older than Squeak 5.2", unless the Metacello authors mean by that on Squeak 5.0 and 5.1 (excluding older than 5.0 for example). David Stes -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJfwUYmAAoJEAwpOKXMq1MaJ68H/34grmdlZLGWdOkL4J35sOH7 xxbfpE5bU7X8uxYuzjh8AWgolrh+RzrrIHVy2IsiBvS0qIvxmB9sMGIzk7+3eyMU ircVVA40LUWjTJHQY6iw2lDQUoxifxaUPG66zV+JjxcWA9G3hN+TP9dF0JygxJWA xM5dbO/SRS8Ay43UBQQ4tTLasdekD55+I5+qcaX5WsV13gd7UGNYiB/WJiCt/9qn RODu5eWYSHcEKzjyPBYbhd6phDtr/U1Vrv9TgJpda6kHumLSInIJEt++Gi4yPYz7 CFp9wfFYsgoXy3IMo+T0Pg3KEHbizdvdfQHsChi6yzo/v8Jfv4AxnrfOn7pzyug= =Zfcd -----END PGP SIGNATURE----- |
In reply to this post by stes
On Fri, Nov 27, 2020 at 05:18:44PM +0100, [hidden email] wrote:
> > In the Squeak 4.5 #15117 image, under Browser->ZipArchive->readFrom: > > eocdPosition <= 0 ifTrue: [self error: 'can''t find EOCD position']. > > Under "Versions" it is indicated: > > nk 12/06/2002 17:09 ZipArchive readFrom: {reading} > > In the Squeak6.0alpha #20077 image, ZipArchive readFrom: has under "Versions": > > dtl 9/28/2017 20:31 ZipArchive readFrom: {reading} > > So I just copy paste that implementation into the 4.6 image and accept it. > > If there is a better way to do it, I would be interested to learn about it. > Perhaps there is a clever way to file in methods from a different image. > There are a few ways to move a method from one image to another. One way is to file method out to disk, then file it back in to the other image. If you highlight the method in a browser and right click it, the menu will give you a fileOut option. Then, from the other image, you can locate the file in a file list browser, highlight the file (look for files ending in '.st'), and use the 'fileIn entire file" menu option to load it. If you are using Monticello, you can file in individual methods from a package, which is often helpful if you are looking for a specific version from some MC package. But for a simple approach that always works for practically any image, it's hard to beat the old-fashioned fileOut / fileIn approach. HTH, Dave |
Free forum by Nabble | Edit this page |