[Seaside] How to convert a 1.4 Pharo Seaside image so that it will work with seasidehosting.st

Mark Andrew mark.andrew at gmail.com
Tue Jul 31 18:31:31 UTC 2012


Dale,

the seasidehosting folks are either all down at the beach or reckon that I
should be able to work this out by myself on the basis of what they already
say in their FAQ, which turns out to be - almost - true. Read on for grisly
details or skip to the TL;DR at the end.

ACT I

Their FAQ says:

"
Press CR to quit...This interpreter (vers. 6502) cannot read image file
(vers. 6505)
Your image was previously saved by a JIT VM (Cog, Squeak5.x). Due technical
reasons, we're currently unable to support such images. Try building your
application using a Squeak 3.x/4.x VM.
"

My first idea was to try out a "Stack VM" in the hope that this would
comply with their JIT restriction. I found one for the mac here
https://ci.lille.inria.fr/pharo/view/Cog/job/StackVM/Architecture=32,OS=mac/lastSuccessfulBuild/artifact/StackVM-mac.zipand
was pleased when it loaded my current pharo 1.4 image. I then saved
the
image, uploaded it to seasidehosting again and got the same "Press CR to
quit" behavior I had in the first place.

(Sidenote: I have not been able to find any way of interrogating the VM to
ask what format it generates, which means the only way of finding out is by
uploading an image to seasidehosting and seeing if it is accepted. Is there
a standard way of finding this out?)

ACT II

So as a new approach I figured on following their tip and rebuilding with
the squeak.org one-click of 4.3, which I got from here:

http://ftp.squeak.org/4.3/Squeak-4.3-All-in-One.zip

I downloaded and started this and then opened
 www.squeaksource.com/MetacelloRepository and loaded the topmost
ConfigurationOfSeaside30 (dkh.375)

Then I did "ConfigurationOfSeaside30 load" and it fetched a bunch of stuff,
giving me a error box along the way announcing "No version found for
#stable of ConfigurationOfZincComponents". Figuring I would cross that
bridge later I just hit "proceed" and it carried on fetching (a whole bunch
more) stuff until it was done.

The next issue was that I am using REST in my application. I used the
following from the seaside book to get that

Gofer new
squeaksource: 'Seaside30Addons';
package: 'Seaside-REST-Core';
package: 'Seaside-Pharo-REST-Core';
package: 'Seaside-Tests-REST-Core';
load


and that ran to completion with no complaints.

So now I tried loading my application, which I had in a local Monticello
repository. This complained at me for not using capital letters for my
class variable names (my bad), I proceeded through these messages until I
then hit a new error "UndefinedObject>>defaultMethodTrailer" and this just
kept popping up whenever I hit "proceed".

So I gave up trying to load my application and wondered if I could at least
upload the current image, with just the stock seaside I had built and
without my app, to see if the image format was at least the right one.
Before I did this I thought I should at least test it locally. However, the
problem there was that the ConfigurationOfZincComponents message I
mentioned before meant that I was missing WAKom.

So I was stuck.

ACT III

Looking for new avenues, I found (I know, I should have seen this earlier)
that there was a prebuilt squeak + seaside at

http://ftp.squeak.org/various_images/seaside/Seaside%203.0.6.zip

I tried uploading this image to seasidehosting and found that it worked.
Then I loaded the REST stuff again as described above and then my own
application from my local repository. Once I had sorted out a few minor
Squeak/Pharo compatibility issues it worked!  .... apart from the REST
interface. When I implement a simple REST interface as described in 24.2 of
the Seaside book I get the expected response with Pharo, but the following
comes back from Squeak:

"
!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">^M<html><head>^M<title>500
Internal Server Error</title>^M</head><body>^M<h1>Internal Server
Error</h1>^MError: Improper store into indexable
object<p>^M<hr>^M<address>KomHttpServer/7.1.3 (Mac OS)  Server at
'localhost' Port 8080</address>^M</body></html>
"

So that is where I am now. I would be pretty happy just to get REST
working, but obviously on the long run I want to be able to build from a
stock squeak so I can keep up with any new stuff that comes along.


TL;DR Used a prebuilt Squeak + Seaside 3.06 bundle. This produces images
which are acceptable to seasidehosting.st. Now I'm stuck on REST, any tips
more than welcome


On Thu, Jul 26, 2012 at 6:27 PM, Dale Henrichs <dhenrich at vmware.com> wrote:

> Mark,
>
> 1. find out from the seasidehosting folks if they support the
> cogvm/pharo1.4 and if
>    so what are their recommendations if not find out what combination of
> pharo and
>    vms they actually support.
> 2. create packages for you app so you can save and reload your own
> application code
>    test that out using the version of pharo/vm that you are currently
> using.
>
> Let us know what you learn from the seasidehosting folks and we'll go from
> there.
>
> Dale
>
> ----- Original Message -----
> | From: "Mark Andrew" <mark.andrew at gmail.com>
> | To: "Seaside - general discussion" <seaside at lists.squeakfoundation.org>
> | Sent: Thursday, July 26, 2012 9:09:44 AM
> | Subject: Re: [Seaside] How to convert a 1.4 Pharo Seaside image so that
> it    will work with seasidehosting.st
> |
> |
> |
> | Thanks for your pointers guys. Unfortunately all I can see so far is
> | that my search space has exploded into a plethora of various
> | possible combination of Seaside Versions, Pharo/Squeak Versions and
> | VM Versions. I have started exploring this but am always coming up
> | against syntax errors and other weird stuff while trying to assemble
> | the necessary components, without even knowing if I am going along
> | the right route.
> |
> | I know this sounds like an appeal to be spoon-fed but what I really
> | need is a concrete set of instructions e.g.: "get this vm and this
> | image from this site and download the rest from the following
> | Meta/Monticello repo. "
> |
> |
> | Thanks in advance for feeding me :-) And I promise if I ever get it
> | to work I will write it all up so that you are pestered no more.
> |
> |
> | _______________________________________________
> | seaside mailing list
> | seaside at lists.squeakfoundation.org
> | http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> |
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20120731/622510d2/attachment.htm


More information about the seaside mailing list