Maintaining Smalltalk code on multiple platforms

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

Maintaining Smalltalk code on multiple platforms

Stephan Eggermont-3
Hi,

The code for Roassal works on both vw and Pharo. How is that maintained?
Is one version leading, and the other derived from that? I noticed that the VW
version has a different package structure (much more flat), and classes have the
RO prefix. Or are changes simply performed twice?  Or is Roassal an early user
of the github based approach advocated by Dale?

Stephan
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining Smalltalk code on multiple platforms

abergel
Hi Stephan,

We have a reliable and working solution to achieve this, even if it gives a strong feeling of being ad-hoc.
We develop Roassal in Pharo. Roassal on Pharo has essentially two .mcz packages: Roassal.mcz and RoassalMorphic.mcz. So, you have two packages listed in the configuration and in the Monticello browser.

We then have a method:
=-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-=
ROExporter>>toVW

        "
        self new toVW
       
        If I'm executed, I generate a st file called Roassal-AlexandreBergel.(*version*)-vw5.st near to the image (./contents/resources).
        To import Roassal in VW your should have a Roassal version already loaded in the image and follow this steps:
       
        1) Remove the Roassal-Core package and agree with all the classes removal in the Roassal-VWSpecific.
        2) Create the Roassal-Core package again and do right click in the package, select 'file into' and choose the file you exported.
        3) FInally restore the Roassal-VWSpecific package by loading the latest version of it from the public repository.
       
        "
        Gofer new
                squeaksource: 'PackageInfo';
                package: 'PackageInfo-Exporters';
                load.
       
        (Smalltalk at: #VW5PackageExporter)
                fileOutPackageNamed:  'Roassal'
        withNamespace: 'Roassal'.
=-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-= =-=-=-=-=-=
       
Cheers,
Alexandre


On Sep 27, 2012, at 7:59 AM, Stephan Eggermont <[hidden email]> wrote:

> Hi,
>
> The code for Roassal works on both vw and Pharo. How is that maintained?
> Is one version leading, and the other derived from that? I noticed that the VW
> version has a different package structure (much more flat), and classes have the
> RO prefix. Or are changes simply performed twice?  Or is Roassal an early user
> of the github based approach advocated by Dale?
>
> Stephan
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining Smalltalk code on multiple platforms

Stephan Eggermont-3
In reply to this post by Stephan Eggermont-3
Hi Alexandre,

That looks good. I ran into some trouble when trying this with multiple packages.
The VW5PackageExporter is very specialized for Seaside. If it notices classes
starting with WA or with a superclass starting with WA it adds Seaside to to the
imports, and uses a hack on Behavior to add Seaside.

visualworksName
        ^ (#('WA' 'SU' 'CT') includes: (self name copyFrom: 1 to: 2))
                ifTrue: ['Seaside.', self name]
                ifFalse: [self name]

 I was able to work around that.

Stephan
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining Smalltalk code on multiple platforms

abergel
Doru told me that there is a Monticello importer in VisualWorks, but I haven't tried it.

Cheers,
Alexandre


On Sep 27, 2012, at 12:20 PM, Stephan Eggermont <[hidden email]> wrote:

> Hi Alexandre,
>
> That looks good. I ran into some trouble when trying this with multiple packages.
> The VW5PackageExporter is very specialized for Seaside. If it notices classes
> starting with WA or with a superclass starting with WA it adds Seaside to to the
> imports, and uses a hack on Behavior to add Seaside.
>
> visualworksName
> ^ (#('WA' 'SU' 'CT') includes: (self name copyFrom: 1 to: 2))
> ifTrue: ['Seaside.', self name]
> ifFalse: [self name]
>
> I was able to work around that.
>
> Stephan
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining Smalltalk code on multiple platforms

Stephan Eggermont-3
In reply to this post by Stephan Eggermont-3
Alexandre wrote:
>Doru told me that there is a Monticello importer in VisualWorks, but I haven't tried it.

I have. Not so easy to make work. There is a screencast, but it avoids the difficult
parts.

Stephan
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining Smalltalk code on multiple platforms

abergel
Ok, thanks for sharing your experience. This is valuable.

Cheers,
Alexandre


On Sep 27, 2012, at 5:10 PM, Stephan Eggermont <[hidden email]> wrote:

> Alexandre wrote:
>> Doru told me that there is a Monticello importer in VisualWorks, but I haven't tried it.
>
> I have. Not so easy to make work. There is a screencast, but it avoids the difficult
> parts.
>
> Stephan
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev