Porting

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

Porting

Gerardo Richarte
What's required to port seaside to a new Smalltalk dialect? I mean, in
terms of webserver (I know about continuations). Does it requires a
webserver writen in Smalltalk? or I can use an external webserver and
with FastCGI route request to Smalltalk? (I know this is GemStone's
approach, but I'm wondering how much of a webserver you need to serve
FastCGI, for example)
I also know that Seaside can be plugged to a number of different
Smalltalk web servers, what's this list?

    thanks!
    richie
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Lukas Renggli
> What's required to port seaside to a new Smalltalk dialect? I mean, in
> terms of webserver (I know about continuations).

You need to write an adapter that converts requests to WARequest
instances and WAResponse instances to whatever responses you require.
It is certainly the easiest if you have a simple web server in your
Smalltalk dialect, but it is not a requirement. If you have an
implementation of CGI, FastCGI, AJP, ... or something similar in your
Smalltalk you can interface these with your Apache server. Again you
need to write an adapter to do this.

Apart from a server adapter you are required to provide different
platform dependent APIs.

Continuations are no longer a requirement as of Seaside 2.9.

> I also know that Seaside can be plugged to a number of different
> Smalltalk web servers, what's this list?

That depends on the platform. On Squeak this is Kom, Swazoo, FastCGI
and probably a few others, but these are the ones that I know.

There is a list seaside-dev to discuss porting and portability of Seaside.

Cheers,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Göran Krampe
Lukas Renggli wrote:
>> What's required to port seaside to a new Smalltalk dialect? I mean, in
>> terms of webserver (I know about continuations).
>
> You need to write an adapter that converts requests to WARequest
> instances and WAResponse instances to whatever responses you require.

In fact, my guess is that the *simplest* way to get Seaside running on
another Smalltalk might be to port Blackfoot, my SimpleCGI/SCGI
implementation available on SM. It is very small and even though it is
not yet fully tested, it does work, modulo special cases - for example,
haven't tested file uploads yet etc.

Blackfoot has been tested with Cherokee and a modified/fixed Nginx.
Should work with Apache or Lighttpd with SCGI too I guess.

[SNIP]
>> I also know that Seaside can be plugged to a number of different
>> Smalltalk web servers, what's this list?
>
> That depends on the platform. On Squeak this is Kom, Swazoo, FastCGI
> and probably a few others, but these are the ones that I know.

...and Blackfoot. :)

regards, Göran

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Gerardo Richarte
In reply to this post by Lukas Renggli
Lukas Renggli wrote:
> Continuations are no longer a requirement as of Seaside 2.9.
>  
that's interesting.
Is there any difference in functionality with and without continuations?

    richie


_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Lukas Renggli
Not much, you just use CPS (continuation passing style) to define flow.

So instead of

  result := self call: aComponent.
  result doSomethingWithIt.

you write

  self show: aComponent onAnswer: [ :result |
    result doSomethingWithIt ]

CPS gets nasty with complicated flows (loops) and when other (library,
model) code is involved, but a transformation is always possible. So
it is strictly equivalent.

Lukas



On Thu, Feb 19, 2009 at 3:33 PM, Gerardo Richarte <[hidden email]> wrote:

> Lukas Renggli wrote:
>> Continuations are no longer a requirement as of Seaside 2.9.
>>
> that's interesting.
> Is there any difference in functionality with and without continuations?
>
>    richie
>
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>



--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Marcin Tustin
In reply to this post by Gerardo Richarte
But...will continuation-based coding be available as well?

On Thu, Feb 19, 2009 at 2:46 PM, Lukas Renggli <[hidden email]> wrote:

> Not much, you just use CPS (continuation passing style) to define flow.
>
> So instead of
>
>  result := self call: aComponent.
>  result doSomethingWithIt.
>
> you write
>
>  self show: aComponent onAnswer: [ :result |
>    result doSomethingWithIt ]
>
> CPS gets nasty with complicated flows (loops) and when other (library,
> model) code is involved, but a transformation is always possible. So
> it is strictly equivalent.
>
> Lukas
>
>
>
> On Thu, Feb 19, 2009 at 3:33 PM, Gerardo Richarte <[hidden email]> wrote:
>> Lukas Renggli wrote:
>>> Continuations are no longer a requirement as of Seaside 2.9.
>>>
>> that's interesting.
>> Is there any difference in functionality with and without continuations?
>>
>>    richie
>>
>>
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
>
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Philippe Marschall
In reply to this post by Gerardo Richarte
2009/2/19 Gerardo Richarte <[hidden email]>:
> Lukas Renggli wrote:
>> Continuations are no longer a requirement as of Seaside 2.9.
>>
> that's interesting.
> Is there any difference in functionality with and without continuations?

AFAIK some of the web based tools don't work.

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Porting

Lukas Renggli
Yes, it is available in exactly the same form when loading the package
Seaside-Flow. This separation is useful for Smalltalk platforms that
have no continuations.

With the exception of the walkback page, all devtools have been
refactored not to depend on Seaside-Flow.

Lukas

On 2/19/09, Philippe Marschall <[hidden email]> wrote:

> 2009/2/19 Gerardo Richarte <[hidden email]>:
>> Lukas Renggli wrote:
>>> Continuations are no longer a requirement as of Seaside 2.9.
>>>
>> that's interesting.
>> Is there any difference in functionality with and without continuations?
>
> AFAIK some of the web based tools don't work.
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>


--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside