Problem Deploying With Dolphin 4.0

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

Problem Deploying With Dolphin 4.0

Joey Gibson
I just bought D4.0 Pro and installed it without problem. I then
installed the package containing my customized version of Pocket
Smalltalk, which I had modified in D3.x. On loading the package, I got a
popup that told me the package had been saved with a previous VM, but
that it should load OK, blah blah blah. It loaded fine, and the app
itself runs fine within the D4 environment. The problem is when I try to
deploy it. The package still had the ADK settings that I used with D3.x
and that's what I tried to use first. After discovering that I needed to
change my RuntimeSessionManager subclass to override #main instead of
#tertiaryStartup I deployed. The stripping went without error, but when
I try to run the executable, I get popups about two of the classes in my
app not understanding certain messages, and QRuntimeSessionManager (my
subclass of RuntimeSessionManager), not understanding #add:. I got about
25 popups about the same three messages, and then finally the initial
window of the app appears. But the toolbar didn't have any of the
buttons that it should have (this was on the same machine as the D4
environment was installed on, so the appropriate DLLs were present). I
then went back into Dolphin and verified that the messages were actually
there (#add: of QRuntimeSessionManager was actually defined in a
superclass), then tried deploying with no options in the deployment
wizard checked. Still no joy. Apparently these three messages are being
stripped even though I turned all the options off.

        Any ideas of what I need to do? Could the disappearance of the
#add: message be the cause of the missing toolbar bitmaps?

        BTW, I was also very pleased with the upgrade price to 4.0.

Joey

--
-- Sun Certified Java2 Programmer
-- Political Rants: www.joeygibson.com
-- My Pocket Smalltalk Stuff: st.joeygibson.com
--
-- "Do you know what I am doing, Miss Kenton? I am placing my
--  mind elsewhere while you chatter away."



-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Ian Bartholomew
Joey,

"Joey Gibson" <[hidden email]> wrote in message
news:[hidden email]...
> Any ideas of what I need to do? Could the disappearance of the
> #add: message be the cause of the missing toolbar bitmaps?

Re the stripping problem.

It might be worth checking the log file to see if that sheds some light -
you can at least confirm the methods in question are being stripped.

You could also try adding the methods to the "must not strip" method
category - it might get you working until you can figure out why they are
being stripped.

How are the methods referenced?. If the selectors are being constructed on
the fly and then being #performed then that my be the reason. D4 seems a lot
more aggressive in it's stripping - which is why the final files are so much
smaller.

Re the bitmaps.

Where are they located - are they system bitmaps (i.e. ones provided by the
development system)?. If so then the problem is probably that the dll is not
available to the executable. Try copying dolphindr004.dll from the
installation folder to the folder where your executable resides and try
again. I'm not sure about the status of this dll, whether it can be
distributed or not?

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Bob Jarvis
In reply to this post by Joey Gibson
Try placing the messages you don't want stripped into the 'must not
strip' category.  I couldn't find where #add: is defined in the
SessionManager hierarchy on either the class or instance side.  Which
class (in the SessionManager hierarchy) defines #add:?
--
Bob Jarvis
Compuware @ Timken


Sent via Deja.com http://www.deja.com/
Before you buy.


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Andy Bower
In reply to this post by Joey Gibson
Joey

Are any of the classes or methods of the original Pocket Smalltalk in the
"development" ("Development" for classes) category? These categories are
forcibly stripped from the image. As Ian suggests you may need to resort to
the stripping log to find out what's going on. The log in D4 is much
improved over the version equivalent.

Best regards,

Andy Bower
Dolphin Support
http://www.object-arts.com

---
Visit the Dolphin Smalltalk Wiki Web
http://www.object-arts.com/wiki/html/Dolphin/FrontPage.htm
---

"Joey Gibson" <[hidden email]> wrote in message
news:[hidden email]...

> I just bought D4.0 Pro and installed it without problem. I then
> installed the package containing my customized version of Pocket
> Smalltalk, which I had modified in D3.x. On loading the package, I got a
> popup that told me the package had been saved with a previous VM, but
> that it should load OK, blah blah blah. It loaded fine, and the app
> itself runs fine within the D4 environment. The problem is when I try to
> deploy it. The package still had the ADK settings that I used with D3.x
> and that's what I tried to use first. After discovering that I needed to
> change my RuntimeSessionManager subclass to override #main instead of
> #tertiaryStartup I deployed. The stripping went without error, but when
> I try to run the executable, I get popups about two of the classes in my
> app not understanding certain messages, and QRuntimeSessionManager (my
> subclass of RuntimeSessionManager), not understanding #add:. I got about
> 25 popups about the same three messages, and then finally the initial
> window of the app appears. But the toolbar didn't have any of the
> buttons that it should have (this was on the same machine as the D4
> environment was installed on, so the appropriate DLLs were present). I
> then went back into Dolphin and verified that the messages were actually
> there (#add: of QRuntimeSessionManager was actually defined in a
> superclass), then tried deploying with no options in the deployment
> wizard checked. Still no joy. Apparently these three messages are being
> stripped even though I turned all the options off.
>
> Any ideas of what I need to do? Could the disappearance of the
> #add: message be the cause of the missing toolbar bitmaps?
>
> BTW, I was also very pleased with the upgrade price to 4.0.
>
> Joey
>
> --
> -- Sun Certified Java2 Programmer
> -- Political Rants: www.joeygibson.com
> -- My Pocket Smalltalk Stuff: st.joeygibson.com
> --
> -- "Do you know what I am doing, Miss Kenton? I am placing my
> --  mind elsewhere while you chatter away."
>
>
>
> -----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
> http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
> -----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Blair McGlashan
In reply to this post by Joey Gibson
Joey

You wrote in message
news:[hidden email]...
> I just bought D4.0 Pro and installed it without problem. I then
> installed the package containing my customized version of Pocket
> Smalltalk, which I had modified in D3.x. On loading the package, I got a
> popup that told me the package had been saved with a previous VM, but
> that it should load OK, blah blah blah. It loaded fine, and the app
> itself runs fine within the D4 environment. The problem is when I try to
> deploy it....

If you send me a copy of your package, I'll check it out.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Joey Gibson
In reply to this post by Ian Bartholomew
In article <8vgq7k$4cfob$[hidden email]> on Wed, 22 Nov 2000
15:50:44 -0000, [hidden email] said:

||| It might be worth checking the log file to see if that sheds some light -
||| you can at least confirm the methods in question are being stripped.

        Yes, they do show up in the strip log as being removed.

||| How are the methods referenced?. If the selectors are being constructed on
||| the fly and then being #performed then that my be the reason.

        Good question. I didn't write 99% of the code in this package. My
contribution was to adorn all of the windows in the package with
toolbars. So how the code is being used, I couldn't say off the top of
my head.

||| Re the bitmaps.
|||
||| Where are they located - are they system bitmaps (i.e. ones provided by the
||| development system)?. If so then the problem is probably that the dll is not
||| available to the executable. Try copying dolphindr004.dll from the
||| installation folder to the folder where your executable resides and try
||| again. I'm not sure about the status of this dll, whether it can be
||| distributed or not?

        I used the toolbars that can be found within the Dolphin tools, so  
the bitmaps in question are the same ones you see in the Dolphin
toolbars. I happened to have DBMON running when I tried to run the
deployed app a few minutes ago, and I discovered that it was trying to
find a dll called DolphinDR004.dll, which was not in the Common Files
directory, but in the main Dolphin 4 directory. Once I put this dll in
the same directory as the app, the bitmaps are found correctly. I don't
know what this means as far as distribution goes. Is that dll
redistributable?

Joey
--
--
-- Sun Certified Java2 Programmer
-- Political Rants: www.joeygibson.com
-- My Pocket Smalltalk Stuff: st.joeygibson.com
--
-- "Do you know what I am doing, Miss Kenton? I am placing my
--  mind elsewhere while you chatter away."



-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Ian Bartholomew-3
Joey,

"Joey Gibson" <[hidden email]> wrote in message
news:[hidden email]...

> the same directory as the app, the bitmaps are found correctly. I don't
> know what this means as far as distribution goes. Is that dll
> redistributable?

 From the Dolphin 4.0 education centre

~-~-~-

DolphinDRYYR.DLL -- The Dolphin Smalltalk Development System resources. This
DLL contains various resources such as icons, bitmaps etc. which are
normally only used by the development environment. However, if you wish to
make use of these as part of your application then you may do so. In which
case, you must install this DLL into the same directory as your application
executable.

~-~-~-

Which answers both questions for us <g>

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Ian Bartholomew-3
In reply to this post by Joey Gibson
Joey,

"Joey Gibson" <[hidden email]> wrote in message
news:[hidden email]...

> the same directory as the app, the bitmaps are found correctly. I don't
> know what this means as far as distribution goes. Is that dll
> redistributable?

>From the Dolphin 4.0 education centre

~-~-~-

DolphinDRYYR.DLL -- The Dolphin Smalltalk Development System resources. This
DLL contains various resources such as icons, bitmaps etc. which are
normally only used by the development environment. However, if you wish to
make use of these as part of your application then you may do so. In which
case, you must install this DLL into the same directory as your application
executable.

~-~-~-

Which answers both questions for us <g>

Ian


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Blair McGlashan
In reply to this post by Joey Gibson
Joey was kind enough to send me a copy of his package, and I've spent half
an hour looking into the problems he experienced. I think these will be of
general interest spreading knowledge about Lagoon:

"Joey Gibson" <[hidden email]> wrote in message
news:[hidden email]...
>.... The stripping went without error, but when
> I try to run the executable, I get popups about two of the classes in my
> app not understanding certain messages, and QRuntimeSessionManager (my
> subclass of RuntimeSessionManager), not understanding #add:. I got about
> 25 popups about the same three messages, and then finally the initial
> window of the app appears.

The later ones are knock on effects of the first. Pressing OK to the Warning
dialog attempts to resume execution (DNUs are resumably errors) and then
messages end up getting sent to the wrong objects. If you press Cancel on
the first warning, the process will get terminated, and you won't get any
more. You won't get a window either :-), since the first DNU occurs before
it has been opened, but the app. will continue running. ASIDE: This is
essentially the behaviour of a DNU error in a runtime app should any sneak
through. Although an app. ought to be tested well enough to avoid DNUs, it
is comforting to know that the app will stay up. The same is true of other
errors, and in fact non-resumable ones will not result in any knock on
effects since they always cause the process to be terminated (in effect the
only option is to Cancel), so the operation is effectively unwound back to
the event loop. The manner in which unhandled exceptions are dealt with is
all customisable by overriding methods in one's RuntimeSessionManager.

So, what is causing the initial DNU? Is there a whole in the ImageStripper
logic so it isn't finding references it should?

No, thankfully not.

What is happenning is that Joey has some methods in one of the development
method categories that are forcefully removed, regardless of stripping
options. The offending category is 'categories' :-). There are two ways
around this:
1) Don't use 'categories', i.e. just rename it in the classes where it
appears, easily located by using the Method/Browse/Category... command in
the browser.
2) Subclass ImageStripper and override #developmentMethodCategoryNames to
remove 'categories' from the set.

I've chosen to do the latter in this case to avoid modifying all Joey's
classes.

To avoid this problem in future I'm going to remove 'categories' from the
list of development categories, and simply add the development methods in it
to the 'development' category.

Do be careful not to use the development method categories - they are listed
in ImageStripper>>developmentMethodCategoryNames (there are 5, soon to be
4). The most important of these is 'development'. The methods in this
category must be removed by the terms of the license, because if they are
not then development classes may end up in the deployed image.

>... But the toolbar didn't have any of the
> buttons that it should have (this was on the same machine as the D4
> environment was installed on, so the appropriate DLLs were present).
>...

There are two potential issues here, both of general importance:

1) ReferenceViews are employed in Joey's package. The reference chasing done
by the ImageStripper will not _currently_ find these if the only references
are embedded in other view resources. The simplest way to work around this
is to turn off the option to strip redundant resources, and live with a
slightly large executable. Another way is to make sure the resource names
are referenced from a method which will not be stripped, ideally the ones
that cause the reference views to be used. In this case I've added a single
method which just contains the names of the views and placed it in the 'must
not strip' category.
2) The Dolphin resources DLL (DolphinDR004.DLL) is used. As mentioned in
other replies, this can be redistributed if you wish, but it must be
somewhere on the search path for resource libraries. The easiest way to
guarantee this is to place it in the same directory as the deployed
executable.

Anyway, I eventually ended up with an executable that works in the same
manner as it does in the development environment (I can't seem to browse any
of the Pocket Smalltalk methods in either?). The eventual .EXE size is under
1.4Mb, which is not bad for a (Pocket) Smalltalk programming environment.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Joey Gibson
In article <t9fT5.7010$[hidden email]>,
[hidden email] says...

> Joey was kind enough to send me a copy of his package, and I've spent half
> an hour looking into the problems he experienced. I think these will be of
> general interest spreading knowledge about Lagoon:

        Thanks for the assistance, Blair. Just to be clear for anyone
reading, these aren't really "my" sources. I did a small bit of work on
Pocket Smalltalk (the toolbars), but 99.23% of the work was done by
Andrew Brault, Eric Arsenau and Petr Novak. I just happen to maintain a
costom version of PST with the toolbars. Sorry to sound like a lawyer,
but I don't want any of the three above mentioned folks to think I'm
trying to horn in on their great product.

> The later ones are knock on effects of the first. Pressing OK to the Warning
> dialog attempts to resume execution (DNUs are resumably errors) and then
> messages end up getting sent to the wrong objects. If you press Cancel on
> the first warning, the process will get terminated, and you won't get any
> more. You won't get a window either :-),

        I assumed this was the case. The first time I got one I pressed
Cancel, which promptly killed the app. Then I tried answering OK, and it
cycled through several more, and then showed the main window.

> 1) Don't use 'categories', i.e. just rename it in the classes where it
> appears, easily located by using the Method/Browse/Category... command in
> the browser.
> 2) Subclass ImageStripper and override #developmentMethodCategoryNames to
> remove 'categories' from the set.

        Number 2 sounds easy enough.

> To avoid this problem in future I'm going to remove 'categories' from the
> list of development categories, and simply add the development methods in it
> to the 'development' category.

        If categories needs to be in that list for the general case, I'd
hate to see you change your source for a corner case. Subclassing
ImageStripper and changing that one method seems quite simple, and
appropriate for a situation like this.

> 1) ReferenceViews are employed in Joey's package.

        Since I was just reusing the standard Dolphin toolbars (with a few
modifications), reference views seemed most appropriate. I was really
happy when I discovered that I didn't have to create all of the toolbars
by hand, that I could just combine some of the stock toolbars using
references.

> Anyway, I eventually ended up with an executable that works in the same
> manner as it does in the development environment (I can't seem to browse any
> of the Pocket Smalltalk methods in either?). The eventual .EXE size is under
> 1.4Mb, which is not bad for a (Pocket) Smalltalk programming environment.

        When PST starts up, there isn't really much code in it. The first
thing you have to do is open the Package Browser and install the
'core.st' package that comes with the distro. Once you do that, all of
the code for all of the system classes will be browsable. I suppose it
might make sense to autoload that package. The current behavior is the
way I found it, and it never occurred to me to change it. Perhaps I
will...

        As for the exe size with 3.06, it was 2,346,584 bytes. So that is
quite a savings in size.

        Thanks again for all your help. I'll be taking a look at the
modified package you sent.

Joey


-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Ted Bracht-2
Hi Joey,

Are you going to make your new pst available? If so, when and where (in the
e-group?)?

Thanks,

Ted


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Joey Gibson
In article <8vlbmp$4ljvi$[hidden email]>, [hidden email]
says...

||| Are you going to make your new pst available? If so, when and where (in the
||| e-group?)?

        Probably. Where is most likely my site at st.joeygibson.com. When
is the question. Using Blair's suggestions, I was able to get a viable
standalone exe of PST under 4.0. The problem came when trying to load
the core.st package, which is the guts of the PST code. It complained 5
or 10 times about different lines within core.st calling on systraps
that were missing. I don't really understand the systrap business (a
little while studying it probably wouldn't hurt me...), so I can't say
OTTOMH what the problem. My suspicion is that something else is getting
stripped, since I can load core.st into the new PST, as long as it is
running inside the D4 environment. I'm getting ready to head to the in-
laws house for another Thanksgiving dinner, but I may try to look into
this tonight. Depending on when we get back, of course. (It's about 2
hours drive in each direction.)

        Just as an aside, do you (Ted) or anyone else know if there is
much desire within the PST community to keep an Dolphin version around?
You know that Eric is moving PST completely to Squeak (since it's
portable), but I much prefer Dolphin to Squeak. Just curious. I joked
with Petr Novak a while back that perhaps I would have to maintain a
Dolphin version forked off from the main PST tree so I could keep my
toolbars....

Joey


-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Ted Bracht-2
Hi Joey,

"Joey Gibson" <[hidden email]> wrote in message
news:[hidden email]...
> In article <8vlbmp$4ljvi$[hidden email]>, [hidden email]
> says...
>
> ||| Are you going to make your new pst available? If so, when and where
(in the

> ||| e-group?)?
>
> Probably. Where is most likely my site at st.joeygibson.com. When
> is the question. Using Blair's suggestions, I was able to get a viable
> standalone exe of PST under 4.0. The problem came when trying to load
> the core.st package, which is the guts of the PST code. It complained 5
> or 10 times about different lines within core.st calling on systraps
> that were missing. I don't really understand the systrap business (a
> little while studying it probably wouldn't hurt me...), so I can't say
> OTTOMH what the problem. My suspicion is that something else is getting
> stripped, since I can load core.st into the new PST, as long as it is
> running inside the D4 environment. I'm getting ready to head to the in-
> laws house for another Thanksgiving dinner, but I may try to look into
> this tonight. Depending on when we get back, of course. (It's about 2
> hours drive in each direction.)

I'm a bit short on time at the moment, but let me know if I can help.

>
> Just as an aside, do you (Ted) or anyone else know if there is
> much desire within the PST community to keep an Dolphin version around?
> You know that Eric is moving PST completely to Squeak (since it's
> portable), but I much prefer Dolphin to Squeak. Just curious. I joked
> with Petr Novak a while back that perhaps I would have to maintain a
> Dolphin version forked off from the main PST tree so I could keep my
> toolbars....

Well, yes and no. I'm not interested in other environments like Linux and
I'm really hooked on Dolphin. Basically just works as I expect it to. OTOH,
the direction that Eric has taken with his new environment quite appeals to
me as I understand it - building your app within the 'normal' development
environment and then just deploy it. But I think we better hold this
discussion in the PST newsgroup.

>
> Joey
>

Have a nice dinner

Ted


Reply | Threaded
Open this post in threaded view
|

Re: Problem Deploying With Dolphin 4.0

Blair McGlashan
In reply to this post by Joey Gibson
Joey

You wrote in message
news:[hidden email]...
>... Using Blair's suggestions, I was able to get a viable
> standalone exe of PST under 4.0. The problem came when trying to load
> the core.st package, which is the guts of the PST code. It complained 5
> or 10 times about different lines within core.st calling on systraps
> that were missing. I don't really understand the systrap business (a
> little while studying it probably wouldn't hurt me...), so I can't say
> OTTOMH what the problem. My suspicion is that something else is getting
> stripped, since I can load core.st into the new PST, as long as it is
> running inside the D4 environment. ....

When you get back from the in-laws, have a drink (cheers), and then look in
the directory where the application .EXE is. You should find a .ERRORS file,
which all runtime applications produce by default now (override
RuntimeSessionManager>>logError: to get rid of it). It will have contain
quite detailed error dump information in it, including walkbacks for each
error that occurred. From this you should be able to see what is going on,
or at least what is being called and from where.

Regards

Blair