[squeak-dev] Incompatible code between pharo and Squeak

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

[squeak-dev] Incompatible code between pharo and Squeak

Giuseppe
Hi all,

I see, thath some projects, has to fight with incompatbilitys between  
Squeak and Pharo.

I would like to know, how far this incompatiliby goes. For example, in  
Pharo are working now in Safara, Seaside, Polymorph, ffenestri...all  
this project will work on Squeak in the future?

For the moment, I can't get working Polymorph on Squeak, and I don't  
tried Seaside, or Safara, but, How about ffenestri? Will may need  
changes to work over Squeak?

Cheers.

Giuseppe Luigi Punzi Ruiz
Blog: http://www.lordzealon.com
Twitter & Skype & GoogleTalk accounts: glpunzi






Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Incompatible code between pharo and Squeak

Andreas.Raab
Hi Giuseppe -

I've been looking for a good starting point for Polymorph for a while
now. Which version/repository did you start with? What problems did you
encounter? I'm quite interested in keeping Polymorph working on Squeak
(and perhaps integrate it fully at some point) but I just don't know
where to start ;-)

Cheers,
   - Andreas

Giuseppe Luigi Punzi Ruiz wrote:

> Hi all,
>
> I see, thath some projects, has to fight with incompatbilitys between
> Squeak and Pharo.
>
> I would like to know, how far this incompatiliby goes. For example, in
> Pharo are working now in Safara, Seaside, Polymorph, ffenestri...all
> this project will work on Squeak in the future?
>
> For the moment, I can't get working Polymorph on Squeak, and I don't
> tried Seaside, or Safara, but, How about ffenestri? Will may need
> changes to work over Squeak?
>
> Cheers.
>
> Giuseppe Luigi Punzi Ruiz
> Blog: http://www.lordzealon.com
> Twitter & Skype & GoogleTalk accounts: glpunzi
>
>
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Incompatible code between pharo and Squeak

Giuseppe
I started from http://squeakvm.org/win32/release/Squeak-3.10.2- 
trunk.zip, Load Code Updates.
Then, I add the MC repository of Polymorph, and Load latest package of  
Polymorph-Widgets, then latest from Polymorph-Squeak-Widgets

Title bar looks ugly, and If you open Preferences, click on Windows to  
get a MNU (and others strange behaviour).

Cheers.

El 25/08/2009, a las 19:23, Andreas Raab escribió:

> Hi Giuseppe -
>
> I've been looking for a good starting point for Polymorph for a  
> while now. Which version/repository did you start with? What  
> problems did you encounter? I'm quite interested in keeping  
> Polymorph working on Squeak (and perhaps integrate it fully at some  
> point) but I just don't know where to start ;-)
>
> Cheers,
>  - Andreas
>
> Giuseppe Luigi Punzi Ruiz wrote:
>> Hi all,
>> I see, thath some projects, has to fight with incompatbilitys  
>> between Squeak and Pharo.
>> I would like to know, how far this incompatiliby goes. For example,  
>> in Pharo are working now in Safara, Seaside, Polymorph,  
>> ffenestri...all this project will work on Squeak in the future?
>> For the moment, I can't get working Polymorph on Squeak, and I  
>> don't tried Seaside, or Safara, but, How about ffenestri? Will may  
>> need changes to work over Squeak?
>> Cheers.
>> Giuseppe Luigi Punzi Ruiz
>> Blog: http://www.lordzealon.com
>> Twitter & Skype & GoogleTalk accounts: glpunzi
>
>

Giuseppe Luigi Punzi Ruiz
Blog: http://www.lordzealon.com
Twitter & Skype & GoogleTalk accounts: glpunzi






Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Incompatible code between pharo and Squeak

Mariano Martinez Peck
Guiseppe:  I can talk only for what I did. SqueakDBX fortunately works ok in Squeak and Pharo. However sometimes I had to change a bit my code, but little things. On the other hand, for Glorp I did something different. I create a separate package called GlorpPharoAdapator or something like that that add the methods extensions or overrides I need to do in Glorp so that it loads in Pharo. This is something like a patch, but works. I don't know a lot of Glorp and it is not my project and as it has no maintainer in Squeak, I did that. Perhaps a better approach would be to understand the changes and see the best solution to work on both dialects. The thing is that this is a problem of the package

best

Mariano

On Tue, Aug 25, 2009 at 4:42 PM, Giuseppe Luigi Punzi Ruiz <[hidden email]> wrote:
I started from http://squeakvm.org/win32/release/Squeak-3.10.2-trunk.zip, Load Code Updates.
Then, I add the MC repository of Polymorph, and Load latest package of Polymorph-Widgets, then latest from Polymorph-Squeak-Widgets

Title bar looks ugly, and If you open Preferences, click on Windows to get a MNU (and others strange behaviour).

Cheers.

El 25/08/2009, a las 19:23, Andreas Raab escribió:


Hi Giuseppe -

I've been looking for a good starting point for Polymorph for a while now. Which version/repository did you start with? What problems did you encounter? I'm quite interested in keeping Polymorph working on Squeak (and perhaps integrate it fully at some point) but I just don't know where to start ;-)

Cheers,
 - Andreas

Giuseppe Luigi Punzi Ruiz wrote:
Hi all,
I see, thath some projects, has to fight with incompatbilitys between Squeak and Pharo.
I would like to know, how far this incompatiliby goes. For example, in Pharo are working now in Safara, Seaside, Polymorph, ffenestri...all this project will work on Squeak in the future?
For the moment, I can't get working Polymorph on Squeak, and I don't tried Seaside, or Safara, but, How about ffenestri? Will may need changes to work over Squeak?
Cheers.
Giuseppe Luigi Punzi Ruiz
Blog: http://www.lordzealon.com
Twitter & Skype & GoogleTalk accounts: glpunzi



Giuseppe Luigi Punzi Ruiz
Blog: http://www.lordzealon.com
Twitter & Skype & GoogleTalk accounts: glpunzi









Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Incompatible code between pharo and Squeak

Andreas.Raab
Mariano Martinez Peck wrote:

> Guiseppe:  I can talk only for what I did. SqueakDBX fortunately works
> ok in Squeak and Pharo. However sometimes I had to change a bit my code,
> but little things. On the other hand, for Glorp I did something
> different. I create a separate package called GlorpPharoAdapator or
> something like that that add the methods extensions or overrides I need
> to do in Glorp so that it loads in Pharo. This is something like a
> patch, but works. I don't know a lot of Glorp and it is not my project
> and as it has no maintainer in Squeak, I did that. Perhaps a better
> approach would be to understand the changes and see the best solution to
> work on both dialects. The thing is that this is a problem of the package

And of course, if you do have fixes/patches that you would like to see
in Squeak, please do submit them to http://source.squeak.org/inbox.html 
for review and integration.

Cheers,
   - Andreas

> On Tue, Aug 25, 2009 at 4:42 PM, Giuseppe Luigi Punzi Ruiz
> <[hidden email] <mailto:[hidden email]>> wrote:
>
>     I started from
>     http://squeakvm.org/win32/release/Squeak-3.10.2-trunk.zip, Load Code
>     Updates.
>     Then, I add the MC repository of Polymorph, and Load latest package
>     of Polymorph-Widgets, then latest from Polymorph-Squeak-Widgets
>
>     Title bar looks ugly, and If you open Preferences, click on Windows
>     to get a MNU (and others strange behaviour).
>
>     Cheers.
>
>     El 25/08/2009, a las 19:23, Andreas Raab escribió:
>
>
>         Hi Giuseppe -
>
>         I've been looking for a good starting point for Polymorph for a
>         while now. Which version/repository did you start with? What
>         problems did you encounter? I'm quite interested in keeping
>         Polymorph working on Squeak (and perhaps integrate it fully at
>         some point) but I just don't know where to start ;-)
>
>         Cheers,
>          - Andreas
>
>         Giuseppe Luigi Punzi Ruiz wrote:
>
>             Hi all,
>             I see, thath some projects, has to fight with
>             incompatbilitys between Squeak and Pharo.
>             I would like to know, how far this incompatiliby goes. For
>             example, in Pharo are working now in Safara, Seaside,
>             Polymorph, ffenestri...all this project will work on Squeak
>             in the future?
>             For the moment, I can't get working Polymorph on Squeak, and
>             I don't tried Seaside, or Safara, but, How about ffenestri?
>             Will may need changes to work over Squeak?
>             Cheers.
>             Giuseppe Luigi Punzi Ruiz
>             Blog: http://www.lordzealon.com
>             Twitter & Skype & GoogleTalk accounts: glpunzi
>
>
>
>
>     Giuseppe Luigi Punzi Ruiz
>     Blog: http://www.lordzealon.com
>     Twitter & Skype & GoogleTalk accounts: glpunzi
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
>


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Polymorph/Trunk issues (was: Re: Incompatible code between pharo and Squeak)

Andreas.Raab
In reply to this post by Giuseppe
Hi Giuseppe -

[cc: Gary for input on some of the issues below]

Giuseppe Luigi Punzi Ruiz wrote:
> I started from
> http://squeakvm.org/win32/release/Squeak-3.10.2-trunk.zip, Load Code
> Updates.
> Then, I add the MC repository of Polymorph, and Load latest package of
> Polymorph-Widgets, then latest from Polymorph-Squeak-Widgets
>
> Title bar looks ugly, and If you open Preferences, click on Windows to
> get a MNU (and others strange behaviour).

Let's start with the easy stuff. The issue of the ugly title bars are
caused by an age-old issue of trying to create a bold version of a font
that's already bold (and failing to do so in a visually pleasing way).
You can work around this issue by changing the window title font to a
non-bold font (or convincing Gary not to bolden the title font in the
SoftSqueak theme ;-)

The preferences blow up has been fixed in the trunk, it resulted from
the use of custom view registries in Polymorph (but was my fault for not
properly supporting those).

However, even after fixing that I got some errors about
BlockClosure>>isValid and BlockClosure>>asMinimalRepresentation. Looking
around in the Polymorph repository I found these in
Polymorph-EventEnhancements (but on BlockContext not on BlockClosure)
with a number of other extension methods and classes none of which seem
to be used by Polymorph-Widgets.

Question for Gary: Is it enough to implement these methods on
BlockClosure and expect things to work without having to load
Polymorph-EventEnhancements, or is some or all of EventEnhancements
needed for Polymorph? If it's just the two methods I think we should put
them into the trunk with comments and get over it.

The other package I looked at was Polymorph-Squeak-Widgets. There are
only two methods here; one in BorderedMorph that looks like an obvious
fix and should be added to the trunk. The other one
(#handleDisabledKey:) is on ParagraphEditor and effectively a no-op
since we are switching to the Cuis editors. Something will need to be
added to TextEditor for this purpose.

Question for Gary: Should these be folded into Squeak proper or do you
prefer to keep them in Polymorph? Either way is fine by me but you might
have a preference.

Then there is the issue of overrides. Polymorph contains a lot of them
which is understandable considering what it is doing but it means that
the code will be very brittle with regards to any changes in Morphic.

Question for Gary: Do you think it would make sense to try to integrate
these overrides so that we avoid these brittle dependencies or is this
just going to create a maintenance nightmare for you (i.e., having
versions with and without overrides)?

Lastly, performance. The image felt slow after loading Polymorph which I
attributed at first to the pretty gradients but when I switched to the
"StandardSqueak" theme (which is indistinguishable from the trunk's
current look) it still felt slow. So I ran a version of the "standard"
browser benchmark:

| saveMorphs time |
[saveMorphs := World submorphs.
  World removeAllMorphs."heh, heh"
  time := [1 to: 10 do: [:i |
        MorphicToolBuilder new open:
           (Browser new setClass: SystemDictionary selector: nil).
        World doOneCycleNow].
        World submorphs do: [:m | m delete. World doOneCycleNow].
   ] timeToRun] ensure:[World addAllMorphs: saveMorphs].

I found that in the current trunk image the benchmark completes in less
than half the time (!) that it takes to run it in the same image with
Polymorph loaded (10401 msecs vs. 23297 msecs). Something is slowing
down with Polymorph and very much so.

Question for Gary: Is there any intrinsic reason why the Polymorph image
would be so much slower? Have you done any serious performance analysis
and any insights what might be slowing it down? The benchmark was run
with all animations turned off yaddaya to get as close as possible to
the default Squeak look. I actually think that the above benchmark is a
smoking gun that you can increase performance of Polymorph by 2x if you
can find out what is slowing you down.

All said and done the situation is this: Once you update from the trunk
you need to implement two methods on BlockClosure, that is
BlockClosure>>isValid (returns true) and
BlockClosure>>asMinimalRepresentation (returns self). Once this is done,
load Polymorph-Widgets and Polymorph will work. There is the outstanding
issue of ParagraphEditor but it won't cause any immediate harm and I'd
like to hear back from Gary before deciding on how to fix these issues.

Cheers,
   - Andreas


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Incompatible code between pharo and Squeak

Damien Cassou-3
In reply to this post by Giuseppe
On Tue, Aug 25, 2009 at 6:53 PM, Giuseppe Luigi Punzi
Ruiz<[hidden email]> wrote:

>
> I see, thath some projects, has to fight with incompatbilitys between Squeak
> and Pharo.
>
> I would like to know, how far this incompatiliby goes. For example, in Pharo
> are working now in Safara, Seaside, Polymorph, ffenestri...all this project
> will work on Squeak in the future?
>
> For the moment, I can't get working Polymorph on Squeak, and I don't tried
> Seaside, or Safara, but, How about ffenestri? Will may need changes to work
> over Squeak?

The Squeak-dev based on Squeak 3.10 contains Polymorph for a long time
now: http://damiencassou.seasidehosting.st/Smalltalk/squeak-dev. I use
the version on Universe.

--
Damien Cassou
http://damiencassou.seasidehosting.st

"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Incompatible code between pharo and Squeak

Andreas.Raab
Damien Cassou wrote:
> The Squeak-dev based on Squeak 3.10 contains Polymorph for a long time
> now: http://damiencassou.seasidehosting.st/Smalltalk/squeak-dev. I use
> the version on Universe.

Have you ever tried building a Squeak-dev image from the trunk? I would
be interested in learning what (if anything) breaks when you do that. I
think it's important to have a set of tools and applications that
exercise the base image and the Squeak-dev is (I think) the largest
consistent set of such packages loaded together.

If you have a build script for Squeak-dev that would be a great starting
point.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Incompatible code between pharo and Squeak

Edgar J. De Cleene



On 8/26/09 3:33 AM, "Andreas Raab" <[hidden email]> wrote:

> Damien Cassou wrote:
>> The Squeak-dev based on Squeak 3.10 contains Polymorph for a long time
>> now: http://damiencassou.seasidehosting.st/Smalltalk/squeak-dev. I use
>> the version on Universe.
>
> Have you ever tried building a Squeak-dev image from the trunk? I would
> be interested in learning what (if anything) breaks when you do that. I
> think it's important to have a set of tools and applications that
> exercise the base image and the Squeak-dev is (I think) the largest
> consistent set of such packages loaded together.
>
> If you have a build script for Squeak-dev that would be a great starting
> point.
>
> Cheers,
>    - Andreas


In case you wish know, I update my old FunSqueak3.10alpha.7.image to trunk
with minor glitches.
It's the largest old and new projects in one place, I try to update all
projects to new version and add favorites to request of Squeakers.
See detail in http://www.squeak.org/Download/ about list of included
packages.

Edgar




Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Incompatible code between pharo and Squeak

Giuseppe
In reply to this post by Andreas.Raab
>
> (and perhaps integrate it fully at some point)

Have Polymorph integrated in the image, I don't know if it's a good  
idea. The main goal, is to get a minimal "kernel" and load other  
things as packages, true?.

On the other side, for Polymorph integrated in the image, are 2 or  
3MB. I suppose could be interesting to have the images outside the  
"image" and don't use them, if you select SoftSqueak for example.

Giuseppe Luigi Punzi Ruiz
Blog: http://www.lordzealon.com
Twitter & Skype & GoogleTalk accounts: glpunzi