Re: [Bug][7.4] RuntimePackager incorrectly strips methods

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

Re: [Bug][7.4] RuntimePackager incorrectly strips methods

Charles A. Monteiro-2
 from a quick scan of this thread it seems that I do a similar thing i.e.  
 from dev image build process I generate parcels and a corresponding rtp  
that enforces that my stuff is kept. The dev image that does this for me  
i.e. through a Subsystem of mine eventually snapshots the "real" dev image  
i.e to a different name from the host image etc, I don't save the "host"  
dev image. To do the "runtime" build I then have another image that loads  
the generate parcels and rtp file and strips, I then run a script that  
does the packaging into one exe. So it probably is about three clicks but  
a lot better than what it used to be.

However, I am now working on a build up process. The same dev build  
process generates the parcels but now I have a generic Smalltalk runtime  
environment that loads my parcels in.

The reason that I have changed is that at the moment although I do force  
RTP to keep all of my stuff I am 1. still blind in a stripped image , and  
I guess that if problems arise I can't seem to be able to totally discount  
the RTP packaging as a potential source of issues i.e. I may have a hang  
up.

In my case dealing with a fatter image which I can configure so that I can  
load in some diagnostic parcels i.e. browsers , unit tests etc , is better  
than being blind on a totally sealed off runtime.

What I would like is to have Cincom provide an even smaller base image. I  
currently use what's in the 7.3 preview/packaging/base.im which is a  
little over 8mb.

We need a base image (SRE) that basically has just enough to exist and  
then to load parcels. Terry Raymond worked on something similar but  
unfortunately what he build only provides for file-in support. I believe I  
recall him mentioning that his base image was somewhere in the 2 - 3 mb  
range.

-Charles


On Sun, 19 Feb 2006 09:53:59 -0500, Andre Schnoor <[hidden email]>  
wrote:

>
>
>> Here here. It'd allow us to build the executable (wouldn't it be nice
>> to link it to an .exe as well [on multiple platforms, not just
>> windows]) from within the image.
>>
> I'm already building fully integrated executables for Windows (.exe) and  
> MacOSX (.app) transparently, incl. icons, custom splash screens,  
> documentation, installers. Anyway, it's still required to restart the  
> "suicide" image once more in order to continue the build process after  
> the stripping.
>
> What I especially don't like is the fact that the deployment procedure  
> itself (incl. ERP product database access) is initially a part of the  
> image to be stripped. This leaves an uncomfortabe feeling of uncertainty  
> about confidential information potentially leaking into the commercial  
> build (apart from footprint issues).
>
> Fine-tuning a runtime image currently remains a tedious trial-and-error  
> thing, because one can't keep the "mother image" up and running while  
> adjusting parameters.
>
> I believe a "write out" solution is clearly superior to any "strip down"  
> or "build up" approach. Imagine you'll instantly get a fully installable  
> product package (or server) from within a full blown development image,  
> simply be the press of a button!
>
> Andre
>



--
Charles A. Monteiro

Reply | Threaded
Open this post in threaded view
|

Re: [Bug][7.4] RuntimePackager incorrectly strips methods

Reinout Heeck
Charles A. Monteiro wrote:
> We need a base image (SRE) that basically has just enough to exist and
> then to load parcels. Terry Raymond worked on something similar but
> unfortunately what he build only provides for file-in support. I believe I
> recall him mentioning that his base image was somewhere in the 2 - 3 mb
> range.

If Terry's image supports Sockets you could file-in a simple TCP server (or
client if you wish) that has a read-evaluate loop.

A development image can now be used to connect to the base image and build up
anything you wish. Perhaps the simplest thing to implement would be copying
code already present in the host image.


R
-

Reply | Threaded
Open this post in threaded view
|

Re: [Bug][7.4] RuntimePackager incorrectly strips methods

Charles A. Monteiro-2
Interesting,

another thought also would be that since Terry's base image supports  
filing in stuff why can't I just file in parcel support :), of course  
probably easier said that done, I'm guessing that the parcel loading  
infrastructure is not currently packaged in a way that can just be filed  
out and filed in ?

I don't have Terry's image so I have not tried. It seems to me that to  
make his image provide parcel support would be something that could be  
done a lot quicker and therefore provide relief upfront while we wait for  
something like the "ImageWriter".

-Charles
On Thu, 23 Feb 2006 12:02:28 -0500, Reinout Heeck <[hidden email]> wrote:

> Charles A. Monteiro wrote:
>> We need a base image (SRE) that basically has just enough to exist and
>> then to load parcels. Terry Raymond worked on something similar but
>> unfortunately what he build only provides for file-in support. I  
>> believe I
>> recall him mentioning that his base image was somewhere in the 2 - 3 mb
>> range.
>
> If Terry's image supports Sockets you could file-in a simple TCP server  
> (or
> client if you wish) that has a read-evaluate loop.
>
> A development image can now be used to connect to the base image and  
> build up
> anything you wish. Perhaps the simplest thing to implement would be  
> copying
> code already present in the host image.
>
>
> R
> -



--
Charles A. Monteiro

Reply | Threaded
Open this post in threaded view
|

Re: [Bug][7.4] RuntimePackager incorrectly strips methods

Mark Pirogovsky-3
Here is another crazy idea:

How difficult it is to make RTP to file out all of the code from the
system it marks to keep ?

RTP does reasonable enough job of tracing all the references statically,
and monitoring them dynamically as well.

So if we can make RTP to file out all of the application specific code,
  and the file it into the Terry's image,  we can automate the above
procedure.

Here is another thought - in early days of VW before RTP it was much
simpler image stripper, I wonder if it still exist somewhere.  It could
be used to strip the Terry's image ...

My 2C.

--Mark

Charles A. Monteiro wrote:

> Interesting,
>
> another thought also would be that since Terry's base image supports  
> filing in stuff why can't I just file in parcel support :), of course  
> probably easier said that done, I'm guessing that the parcel loading  
> infrastructure is not currently packaged in a way that can just be
> filed  out and filed in ?
>
> I don't have Terry's image so I have not tried. It seems to me that to  
> make his image provide parcel support would be something that could be  
> done a lot quicker and therefore provide relief upfront while we wait
> for  something like the "ImageWriter".
>
> -Charles
> On Thu, 23 Feb 2006 12:02:28 -0500, Reinout Heeck <[hidden email]> wrote:
>
>> Charles A. Monteiro wrote:
>>
>>> We need a base image (SRE) that basically has just enough to exist and
>>> then to load parcels. Terry Raymond worked on something similar but
>>> unfortunately what he build only provides for file-in support. I  
>>> believe I
>>> recall him mentioning that his base image was somewhere in the 2 - 3 mb
>>> range.
>>
>>
>> If Terry's image supports Sockets you could file-in a simple TCP
>> server  (or
>> client if you wish) that has a read-evaluate loop.
>>
>> A development image can now be used to connect to the base image and  
>> build up
>> anything you wish. Perhaps the simplest thing to implement would be  
>> copying
>> code already present in the host image.
>>
>>
>> R
>> -
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Bug][7.4] RuntimePackager incorrectly strips methods

Charles A. Monteiro-2
but my problem is that I do want to load runtime components i.e. parcels  
at runtime but want as minimal a base image as possible,

On Thu, 23 Feb 2006 12:36:08 -0500, Mark Pirogovsky  
<[hidden email]> wrote:

> Here is another crazy idea:
>
> How difficult it is to make RTP to file out all of the code from the  
> system it marks to keep ?
>
> RTP does reasonable enough job of tracing all the references statically,  
> and monitoring them dynamically as well.
>
> So if we can make RTP to file out all of the application specific code,  
>   and the file it into the Terry's image,  we can automate the above  
> procedure.
>
> Here is another thought - in early days of VW before RTP it was much  
> simpler image stripper, I wonder if it still exist somewhere.  It could  
> be used to strip the Terry's image ...
>
> My 2C.
>
> --Mark
>
> Charles A. Monteiro wrote:
>
>> Interesting,
>>  another thought also would be that since Terry's base image supports  
>> filing in stuff why can't I just file in parcel support :), of course  
>> probably easier said that done, I'm guessing that the parcel loading  
>> infrastructure is not currently packaged in a way that can just be  
>> filed  out and filed in ?
>>  I don't have Terry's image so I have not tried. It seems to me that  
>> to  make his image provide parcel support would be something that could  
>> be  done a lot quicker and therefore provide relief upfront while we  
>> wait for  something like the "ImageWriter".
>>  -Charles
>> On Thu, 23 Feb 2006 12:02:28 -0500, Reinout Heeck <[hidden email]>  
>> wrote:
>>
>>> Charles A. Monteiro wrote:
>>>
>>>> We need a base image (SRE) that basically has just enough to exist and
>>>> then to load parcels. Terry Raymond worked on something similar but
>>>> unfortunately what he build only provides for file-in support. I  
>>>> believe I
>>>> recall him mentioning that his base image was somewhere in the 2 - 3  
>>>> mb
>>>> range.
>>>
>>>
>>> If Terry's image supports Sockets you could file-in a simple TCP  
>>> server  (or
>>> client if you wish) that has a read-evaluate loop.
>>>
>>> A development image can now be used to connect to the base image and  
>>> build up
>>> anything you wish. Perhaps the simplest thing to implement would be  
>>> copying
>>> code already present in the host image.
>>>
>>>
>>> R
>>> -
>>



--
Charles A. Monteiro

Reply | Threaded
Open this post in threaded view
|

RE: [Bug][7.4] RuntimePackager incorrectly strips methods

Terry Raymond
In reply to this post by Reinout Heeck
I would not recommend using my stripped image as it has no
support for graphics.

However, you could review my stripping process and associated
files and use it to create a base image that includes graphics
and parcel support. I completely removed parcel support because
it was too hard to remove parts of it that were not needed,
i.e. overrides.

Now if the system parcel/packages were really properly
composed then one could load the graphics stuff.

Terry
 
===========================================================
Terry Raymond       Smalltalk Professional Debug Package
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================

> -----Original Message-----
> From: Reinout Heeck [mailto:[hidden email]]
> Sent: Thursday, February 23, 2006 12:02 PM
> To: [hidden email]
> Subject: Re: [Bug][7.4] RuntimePackager incorrectly strips methods
>
> Charles A. Monteiro wrote:
> > We need a base image (SRE) that basically has just enough to exist and
> > then to load parcels. Terry Raymond worked on something similar but
> > unfortunately what he build only provides for file-in support. I believe
> I
> > recall him mentioning that his base image was somewhere in the 2 - 3 mb
> > range.
>
> If Terry's image supports Sockets you could file-in a simple TCP server
> (or
> client if you wish) that has a read-evaluate loop.
>
> A development image can now be used to connect to the base image and build
> up
> anything you wish. Perhaps the simplest thing to implement would be
> copying
> code already present in the host image.
>
>
> R
> -

Reply | Threaded
Open this post in threaded view
|

Re: [Bug][7.4] RuntimePackager incorrectly strips methods

Charles A. Monteiro-2
In reply to this post by Charles A. Monteiro-2
Bruce:

by your comments I believe you meant to reply to the list as well so I am  
cc-ing the list, if that was not the case, oops :) sorry.

One thing I did with my build up process is that although I am not using  
RTP to package I did use their error notification framework to which I  
actually hook up a custom Notifier since their is very minimalistic. Stack  
dumps are then logged with our logging service which happens to put the  
dump in a specificed location on the network as per our apps configuration  
file, etc.

BTW, if one inspects the base.im provided by Cincom at least in the 7.3  
distribution and checks out what it thinks are its loaded parcels this is  
what we get:

Loaded parcels:

PackageCategories
NetNamespace
URISupport
XML-source
XML

btw Namespaces in image:
Core
Examples
External
Graphics
Kernel
OS
Root
Smalltalk
Store
Tools
UI
XML


now this is in an image with full graphics capabilities, parcel loading  
capabilities, inspectors, stock debugger i.e. not PDP, selector querying  
capabilities, help system, just what I can discern from poking around ,  
mind you the browsing is not available.

Therefore given what is available and what parcels are reported as loaded  
then I conclude that Cincom has not taken the time to component-ize their  
IDE into runtime components. Had they done that and determined the  
dependencies between said components one could then very easily reduce  
that 8mb base image to something considerably lower.

-Charles


On Thu, 23 Feb 2006 15:29:10 -0500, Bruce Badger <[hidden email]>  
wrote:

> On 24/02/06, Charles A. Monteiro <[hidden email]> wrote:
>> but my problem is that I do want to load runtime components i.e. parcels
>> at runtime but want as minimal a base image as possible,
>
> Right on, Charles.
>
> I think this is the single most important requirement for making
> VisualWorks deployment sane.  Currently it's like a video game - you
> play for a while (strip an image) die (the image crashes because
> something is wrong with the strip) learn from your mistake and play
> again.  Repeat.  It is impossible to be certain in this environment.
>
> I would like to see a minimal image that can:
> a) load a parcel
> b) produce a comprehensive stack dump in a known location if things go  
> wrong
>
> Given these two, any image can be constructed.  Even one from which
> you can play the stripping game if that is your preference.
>
> And "minimal" is not about size primarily (though that is a useful
> thing in itself) it is about have the fewest possible things in the
> image that could go wrong, and knowing *exactly* what is in that base
> image and why.
>
> IMO this should to be a high priority project for Cincom.
>
> All the best,
>     Bruce
> --
> Make the most of your skills - with OpenSkills
> http://www.openskills.org/



--
Charles A. Monteiro

Reply | Threaded
Open this post in threaded view
|

RE: [Bug][7.4] RuntimePackager incorrectly strips methods

Terry Raymond

> -----Original Message-----
> From: Charles A. Monteiro [mailto:[hidden email]]
> Sent: Friday, February 24, 2006 10:25 AM
> To: Bruce Badger
> Cc: [hidden email]
> Subject: Re: [Bug][7.4] RuntimePackager incorrectly strips methods
>
[stuff deleted]
>
> Therefore given what is available and what parcels are reported as loaded
> then I conclude that Cincom has not taken the time to component-ize their
> IDE into runtime components. Had they done that and determined the
> dependencies between said components one could then very easily reduce
> that 8mb base image to something considerably lower.

From my experience creating the scripting image I would have to
completely agree with Charles. I also don't think it would be too
difficult for Cincom to fix most of these packaging problems.

> -Charles
>
>
> On Thu, 23 Feb 2006 15:29:10 -0500, Bruce Badger <[hidden email]>
> wrote:
>
> > On 24/02/06, Charles A. Monteiro <[hidden email]> wrote:
> >> but my problem is that I do want to load runtime components i.e.
> parcels
> >> at runtime but want as minimal a base image as possible,
> >
> > Right on, Charles.
> >
> > I think this is the single most important requirement for making
> > VisualWorks deployment sane.  Currently it's like a video game - you
> > play for a while (strip an image) die (the image crashes because
> > something is wrong with the strip) learn from your mistake and play
> > again.  Repeat.  It is impossible to be certain in this environment.
> >
> > I would like to see a minimal image that can:
> > a) load a parcel
> > b) produce a comprehensive stack dump in a known location if things go
> > wrong
> >
> > Given these two, any image can be constructed.  Even one from which
> > you can play the stripping game if that is your preference.
> >
> > And "minimal" is not about size primarily (though that is a useful
> > thing in itself) it is about have the fewest possible things in the
> > image that could go wrong, and knowing *exactly* what is in that base
> > image and why.
> >
> > IMO this should to be a high priority project for Cincom.
> >
> > All the best,
> >     Bruce
> > --
> > Make the most of your skills - with OpenSkills
> > http://www.openskills.org/
>
>
>
> --
> Charles A. Monteiro

Terry
 
===========================================================
Terry Raymond       Smalltalk Professional Debug Package
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================