[squeak-dev] Alien in trunk, for real

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

[squeak-dev] Alien in trunk, for real

Michael Haupt-3
Hi,

did it. :-)

Here's the recipe that works for me to get Alien up and running (Mac,
4.2.1 VM, recent trunk image):

1. install my Compiler patch from Inbox
2. install Alien-Core-First (most recent from SqueakSource - this
holds for all Alien packages below)
3. install Alien-Core
4. install Alien-Examples
5. install Alien-LibC
6. install Alien-CoreTest
7. install Alien-Last-Class-Initialize
8. do
Smalltalk allClasses
        select: [ :class | class category beginsWith: 'Alien-' ]
        thenDo: [ :class |
                class methodDictionary do: [ :method |
                        class recompile: method selector ].
                class class methodDictionary do: [ :method |
                        class class recompile: method selector ] ]

Next, fire up TestRunner, select the Alien tests, run them, watch the
bar go green. :-)

I'd like someone to help me in packaging this as a complete update
that can be installed from the trunk repositories, including the last
recompilation step.

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Bert Freudenberg

On 02.09.2009, at 16:11, Michael Haupt wrote:

> Hi,
>
> did it. :-)
>
> Here's the recipe that works for me to get Alien up and running (Mac,
> 4.2.1 VM, recent trunk image):
>
> 1. install my Compiler patch from Inbox
> 2. install Alien-Core-First (most recent from SqueakSource - this
> holds for all Alien packages below)
> 3. install Alien-Core
> 4. install Alien-Examples
> 5. install Alien-LibC
> 6. install Alien-CoreTest
> 7. install Alien-Last-Class-Initialize
> 8. do
> Smalltalk allClasses
> select: [ :class | class category beginsWith: 'Alien-' ]
> thenDo: [ :class |
> class methodDictionary do: [ :method |
> class recompile: method selector ].
> class class methodDictionary do: [ :method |
> class class recompile: method selector ] ]
>
> Next, fire up TestRunner, select the Alien tests, run them, watch the
> bar go green. :-)
>
> I'd like someone to help me in packaging this as a complete update
> that can be installed from the trunk repositories, including the last
> recompilation step.

Why is step 8 necessary? In any case you should steal from  
#recompilePackage

(PackageInfo named: 'Alien') methods
        do: [:ea | ea actualClass recompile: ea methodSymbol]
        displayingProgress: 'Recompiling...'

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Michael Haupt-3
Hi,

On Wed, Sep 2, 2009 at 4:31 PM, Bert Freudenberg<[hidden email]> wrote:
> Why is step 8 necessary?

because, for some reason I don't know, the Alien methods containing
primitives all had primitive number 0 and would therefore yield
nothing but primitive failures.

> In any case you should steal from #recompilePackage
>
> (PackageInfo named: 'Alien') methods
>        do: [:ea | ea actualClass recompile: ea methodSymbol]
>        displayingProgress: 'Recompiling...'

Much better. :-)

What do I have to do to make this a proper package? Something about
Monticello prologues and epilogues? (No experience there on my
behalf.)

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Igor Stasenko
Good that you made that! :)

2009/9/2 Michael Haupt <[hidden email]>:

> Hi,
>
> On Wed, Sep 2, 2009 at 4:31 PM, Bert Freudenberg<[hidden email]> wrote:
>> Why is step 8 necessary?
>
> because, for some reason I don't know, the Alien methods containing
> primitives all had primitive number 0 and would therefore yield
> nothing but primitive failures.
>
>> In any case you should steal from #recompilePackage
>>
>> (PackageInfo named: 'Alien') methods
>>        do: [:ea | ea actualClass recompile: ea methodSymbol]
>>        displayingProgress: 'Recompiling...'
>
> Much better. :-)
>
Hmm.. Is it possible that a patch to the compiler were in a kind of
'hibernated' state before you loaded the Alinen.
Or is it possible that you are patched the compiler when you had alien
already loaded - that's why you could
end up with primitive index being = 0.
I'm just trying to guess what is happened.

> What do I have to do to make this a proper package? Something about
> Monticello prologues and epilogues? (No experience there on my
> behalf.)
>
> Best,
>
> Michael
>
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Michael Haupt-3
Hi Igor,

On Wed, Sep 2, 2009 at 11:49 PM, Igor Stasenko<[hidden email]> wrote:
> Hmm.. Is it possible that a patch to the compiler were in a kind of
> 'hibernated' state before you loaded the Alinen.
> Or is it possible that you are patched the compiler when you had alien
> already loaded - that's why you could end up with primitive index being = 0.
> I'm just trying to guess what is happened.

good point ... let me try ... no. The recompilation step is required.

BTW Bert's code gives me a debugger. This seems to be because there is
a problem in the category Alien-Core - one of the classes is displayed
as "NotFoundError", and this is a very unhealthy thing (clicking on it
yields a debugger).

So something screwed up the Alien-Core category. More to look at.

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Michael Haupt-3
Hi,

after having submitted a patch to Alien (thanks, John, for letting me
write to the repository), I now have uploaded a package called
AlienInstaller to the *Inbox*. Once that's installed, you can use
"AlienInstaller install" to install all the Alien packages and
recompile the required classes after that.

It uses Installer internally.

Thanks to Igor for helping me! :-)

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Bert Freudenberg

On 03.09.2009, at 18:24, Michael Haupt wrote:

> Hi,
>
> after having submitted a patch to Alien (thanks, John, for letting me
> write to the repository), I now have uploaded a package called
> AlienInstaller to the *Inbox*. Once that's installed, you can use
> "AlienInstaller install" to install all the Alien packages and
> recompile the required classes after that.
>
> It uses Installer internally.
>
> Thanks to Igor for helping me! :-)
>
> Best,
>
> Michael

Nice. But there got to be a simpler way than writing a new package  
that contains just a simple do-it ...

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Michael Haupt-3
Hi Bert,

On Thu, Sep 3, 2009 at 6:31 PM, Bert Freudenberg<[hidden email]> wrote:
> Nice. But there got to be a simpler way than writing a new package that
> contains just a simple do-it ...

thanks for being constructive and telling me about it. ;-)

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Igor Stasenko
2009/9/3 Michael Haupt <[hidden email]>:
> Hi Bert,
>
> On Thu, Sep 3, 2009 at 6:31 PM, Bert Freudenberg<[hidden email]> wrote:
>> Nice. But there got to be a simpler way than writing a new package that
>> contains just a simple do-it ...
>
> thanks for being constructive and telling me about it. ;-)
>

Yeah, Bert, that's what i said to Michael when he about to post this
message. There have to be the simpler way. :)


> Best,
>
> Michael
>
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

Michael Haupt-3
Hi Igor,

On Fri, Sep 4, 2009 at 12:00 AM, Igor Stasenko<[hidden email]> wrote:
> Yeah, Bert, that's what i said to Michael when he about to post this
> message. There have to be the simpler way. :)

... and yet we were wondering what it might be.

Some thinking later ... a Monticello configuration? (Is it possible to
attach epilogues to those?)

Always willing to learn,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Alien in trunk, for real

keith1y

Michael Haupt-3 wrote
Hi Igor,

On Fri, Sep 4, 2009 at 12:00 AM, Igor Stasenko<siguctua@gmail.com> wrote:
> Yeah, Bert, that's what i said to Michael when he about to post this
> message. There have to be the simpler way. :)

... and yet we were wondering what it might be.

Some thinking later ... a Monticello configuration? (Is it possible to
attach epilogues to those?)

Always willing to learn,

Michael
The simpler way is called InstallerScripts in Installer-Scripts

Keith


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Alien in trunk, for real

Andreas.Raab
In reply to this post by Michael Haupt-3
I'm wondering if we aren't talking besides each other here. If you've
used Installer internally already, why can't you just a script that does
the same as you have in your class?

(Installer squeaksource project: 'Alien')
        install: 'Alien-Core-First';
        install: 'Alien-Core';
        install: 'Alien-Examples';
        install: 'Alien-LibC';
        install: 'Alien-CoreTest';
        install: 'Alien-Last-Class-Initialize'.

Or am I missing a point here?

Cheers,
   - Andreas

Michael Haupt wrote:

> Hi Igor,
>
> On Fri, Sep 4, 2009 at 12:00 AM, Igor Stasenko<[hidden email]> wrote:
>> Yeah, Bert, that's what i said to Michael when he about to post this
>> message. There have to be the simpler way. :)
>
> ... and yet we were wondering what it might be.
>
> Some thinking later ... a Monticello configuration? (Is it possible to
> attach epilogues to those?)
>
> Always willing to learn,
>
> Michael
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Alien in trunk, for real

Michael Haupt-3
Hi Andreas,

On Fri, Sep 4, 2009 at 5:12 AM, Andreas Raab<[hidden email]> wrote:
> Or am I missing a point here?

maybe *I* am. I'd like to have the Alien installation *packaged*
somehow; i.e., copy-and-pasting the Installer script to install Alien
is not what I prefer. The AlienInstall thing was the easiest thing
Igor and I could spontaneously come up with to make this *packaged*.

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Alien in trunk, for real

Igor Stasenko
2009/9/3 Michael Haupt <[hidden email]>:

> Hi Andreas,
>
> On Fri, Sep 4, 2009 at 5:12 AM, Andreas Raab<[hidden email]> wrote:
>> Or am I missing a point here?
>
> maybe *I* am. I'd like to have the Alien installation *packaged*
> somehow; i.e., copy-and-pasting the Installer script to install Alien
> is not what I prefer. The AlienInstall thing was the easiest thing
> Igor and I could spontaneously come up with to make this *packaged*.
>
Right, i also proposed the alternative - put installer script on a
wiki somewhere
and use 1-liner installer script to install from squeak.
But i think, MC is still better, since you don't need to remember even
script url or something,
because everything (Alien + its installing script) could be put into
single MC repo and whenever someone needs
to install it, he just doing it right.

> Best,
>
> Michael
>
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Alien in trunk, for real

Michael Haupt-3
Hi,

the AlienInstaller-mha.4.mcz package automatically starts Alien
installation after the AlienInstaller package has been loaded. It's
about as "packaged" as I could make it with my limited capabilities.
;-)

Best,

Michael