Seaside on ST/X ?

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

Seaside on ST/X ?

dassi
Hi all

I noticed that on the current Smalltalk ST/X version, there is Seaside
2.5b4 included! That really surprised me! (ST/X is available here:
www.exept.de)

I did not try it yet, though. Has anyone some more information on that
seaside port to ST/X? Who is maintaining it? How does it perform on
ST/X? On the official seaside website, there is a note, which says, that
seaside on ST/X is not possible. Maybe some preconditions changed with
the current ST/X version, so it is possible now?

Thanks for any information!

Andreas



--
*** Neues von mindclue ***
www.infodaktik.ch
www.scratch.ch

·······································
  mindclue gmbh
  Andreas Brodbeck, Geschäftsführer
  Dipl. El.-Ing. ETH
  Tel: 055 622 26 24
  Mehr: www.mindclue.ch/kontaktinfo.html
·······································
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside on ST/X ?

Lukas Renggli
Hi Andreas,

> I did not try it yet, though. Has anyone some more information on that
> seaside port to ST/X? Who is maintaining it? How does it perform on
> ST/X? On the official seaside website, there is a note, which says, that
> seaside on ST/X is not possible. Maybe some preconditions changed with
> the current ST/X version, so it is possible now?

have a look at the implementation of the class Continuation, the last
time I looked at it there were many halt's in there :-/

I don't know if there is any chance that this changes soon. It would
be very cool to have Seaside in ST/X and would certainly boost the use
of this environment.

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: Seaside on ST/X ?

dassi
Lukas Renggli schrieb:
> Hi Andreas,

Hi Lukas!

>
>> I did not try it yet, though. Has anyone some more information on that
>> seaside port to ST/X? Who is maintaining it? How does it perform on
>> ST/X? On the official seaside website, there is a note, which says, that
>> seaside on ST/X is not possible. Maybe some preconditions changed with
>> the current ST/X version, so it is possible now?
>
> have a look at the implementation of the class Continuation, the last
> time I looked at it there were many halt's in there :-/

So it is... :-(

In the documentation of the Continuation class it says:
"Initial attempt - Contnuations do not work yet."

>
> I don't know if there is any chance that this changes soon. It would
> be very cool to have Seaside in ST/X and would certainly boost the use
> of this environment.

I will try to ask them.

Greetings!

Andreas


--
*** Neues von mindclue ***
www.infodaktik.ch
www.scratch.ch

·······································
  mindclue gmbh
  Andreas Brodbeck, Geschäftsführer
  Dipl. El.-Ing. ETH
  Tel: 055 622 26 24
  Mehr: www.mindclue.ch/kontaktinfo.html
·······································
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

[SeasiedAsync] Capturing events

Michel Bany-3
In reply to this post by dassi
Hi,

The other day a customer of mine came with an interesting request.
They wanted to know what field on the page had the focus just before
a button was clicked and a new component called.
Their idea was to restore the focus to that field when returning from the
called component, possibly with the cursor placed at the right position.

After some discussion, we thought of reusing the SeasideAsync framework
and came with a design where any javascript event can trigger a callback.

It works with both "canvas" and "classic" Seaside with the following api :
(pardon the possible mistakes in these examples)

Classic
    html onFocusCallback: [:event :renderer | lastFocus := 'field-1'].
    html textInputWithValue: field1 callback: [:v | field1 := v].

Canvas
    html textInput
        value: field1;
        onFocusCallback: [:event :renderer | lastFocus := 'field-1'];
        callback: [:v | field1 := v].

The above examples are capturing the "focus" javascript event, but this
should also support any other javascript event. The javascript event is
turned into an instance of WALiveEvent with a bunch of properties,
and the event object is passed to the callback. A renderer is also made
available so that the application can modify portions of the page.

This is available at squeaksource.com/Seaside as SeasideAsync-mb.31
and requires Seaside 2.6b1. This is pretty much untested, and this is the
reason for this post. I would appreciate if interested people would give it
a try and let me know how it goes.

Meanwhile, I'll have a look to the cursor issue ...

Enjoy,
Michel.






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

Re: Seaside on ST/X ?

dassi
In reply to this post by dassi
Andreas Brodbeck schrieb:

> Lukas Renggli schrieb:
> In the documentation of the Continuation class it says:
> "Initial attempt - Contnuations do not work yet."
>
>>
>> I don't know if there is any chance that this changes soon. It would
>> be very cool to have Seaside in ST/X and would certainly boost the use
>> of this environment.
>
> I will try to ask them.

...so I did, and the answer from the company is: For getting the
Continuations to run, they guess a work amount of half a year. But they
don't plan to work on it, since they have no projects which need it.

Well, bad news, but still, ST/X is open source. Maybe there is someone
which don't fear the implementation of the Continuation class out there...


Andreas


--
*** Neues von mindclue ***
www.infodaktik.ch
www.scratch.ch

·······································
  mindclue gmbh
  Andreas Brodbeck, Geschäftsführer
  Dipl. El.-Ing. ETH
  Tel: 055 622 26 24
  Mehr: www.mindclue.ch/kontaktinfo.html
·······································
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside on ST/X ?

Lukas Renggli
> ...so I did, and the answer from the company is: For getting the
> Continuations to run, they guess a work amount of half a year. But they
> don't plan to work on it, since they have no projects which need it.
>
> Well, bad news, but still, ST/X is open source. Maybe there is someone
> which don't fear the implementation of the Continuation class out there...

Good to know. It seems to be an awful lot of work to get continuations
in ST/X. As far as I remember from a discussion with Claus it involves
messing around with the C stack, so this is probably not something
that somebody just can do with enough time. It is certainly not as
easy as in Squeak or VisualWorks. However, I am quite sure that they
will do it, sooner or later ... ;-)

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: [SeasiedAsync] Capturing events

Lukas Renggli
In reply to this post by Michel Bany-3
> Meanwhile, I'll have a look to the cursor issue ...

Interesting use of AJAX :-)

This is probably not of any help, but in the latest script.aculo.us
you could write something like (untested, just written now in the mail
application):

html script: (html field id: last; focus).
html script: (SUJavascript on: last , '.select(' , selection , ')').
html textArea
    id: 'field-id';
    value: text;
    callback: [ :value | text := value ];
    onFocus: (html request
       callback: [ last := 'field-id' ]);
    onSelect: (html request
       callback: [ :value | selection := value ]
       value: (SUJavascript on: 'field-id.selection')).

Of course one should wrap the SUJavascript-instances into propre
objects, but that is for the next version of script.aculo.us ;-)

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: Seaside on ST/X ?

Tony Garnock-Jones-2
In reply to this post by Lukas Renggli
Lukas Renggli wrote:
> Good to know. It seems to be an awful lot of work to get continuations
> in ST/X. As far as I remember from a discussion with Claus it involves
> messing around with the C stack, so this is probably not something
> that somebody just can do with enough time. It is certainly not as
> easy as in Squeak or VisualWorks. However, I am quite sure that they
> will do it, sooner or later ... ;-)

The Scheme interpreter SCM (by Aubrey Jaffer) uses a C-stack-copying
technique to implement full continuations (which I once abstracted into
a full-continuation library for C (!) ...). The main difficulty with it
is exposing the copied stack as a GC root; this was solved in SCM with a
conservative collector. If ST/X already has a solution for finding roots
in a C stack, it may not be so hard.

Tony
--
 [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
   [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
 []  [] http://www.lshift.net/ | Email: [hidden email]
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside on ST/X ?

Petr-9
In reply to this post by dassi
I hope, it will be sooner than later. I like ST/X very much, because it
is fast (an OmniBase test run 10x faster than in Squeak) and can be used
free of charge and the UI is also pretty nice. When I looked at Seaside
in ST/X some time ago, I ported some classes from Squeak which were
missing so that I didn't get any DNUs. However, I didn't know about
continuations, all I read about it is
http://en.wikipedia.org/wiki/Continuation. Does one have to alter VM to
have it? I do not see any primitive calls in the Squak VM. (I am a noob).

Petr

Andreas Brodbeck wrote:

> Andreas Brodbeck schrieb:
>> Lukas Renggli schrieb:
>> In the documentation of the Continuation class it says:
>> "Initial attempt - Contnuations do not work yet."
>>
>>>
>>> I don't know if there is any chance that this changes soon. It would
>>> be very cool to have Seaside in ST/X and would certainly boost the use
>>> of this environment.
>>
>> I will try to ask them.
>
> ...so I did, and the answer from the company is: For getting the
> Continuations to run, they guess a work amount of half a year. But they
> don't plan to work on it, since they have no projects which need it.
>
> Well, bad news, but still, ST/X is open source. Maybe there is someone
> which don't fear the implementation of the Continuation class out there...
>
>
> Andreas
>
>

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

Re: Re: Seaside on ST/X ?

Tony Garnock-Jones-2
Petr wrote:
> Does one have to alter VM to
> have it? I do not see any primitive calls in the Squak VM. (I am a noob).

Continuations are a meta-level construct. If the VM exposes enough of
the stack (or equivalent control facility) reflectively at the
object-level, then you can implement continuations (and other control
structures) by using reflection, without modifying the VM. On the other
hand, if the required access to the control constructs of the VM is not
available at the object-level, then you need to modify the VM.

Squeak's continuation implementation uses the full reflective (both
reading and writing, that is) access to the stack frames of the current
process that Smalltalk exposes.

Tony
--
 [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
   [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
 []  [] http://www.lshift.net/ | Email: [hidden email]
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside