Gcc dependencies in VMMaker

Tim Rowledge tim at sumeru.stanford.edu
Mon Oct 25 02:07:42 UTC 2004


"Alejandro F. Reimondo" <aleReimondo at smalltalking.net> wrote:

> Yes, Tim. It is what I have done and all works ok adding the
>  WinCEVMMaker class by hand after seen how VMMaker
>  is been instantiated...

OK, so you have directory platforms/winCE and a class WinCEVMMaker,
which means
a) wince should appear in your menu of chioces for the platform (sounds
like it works)
b) `VMMaker forPlatform: 'winCE'` should result in an instance of
WinCEVMMaker with no plugins configured. Sounds like that bit works too.


> The effect of instantiating a VMMaker instance when I have
>  only put the folder for WinCE, was that the new VMMaker
>  instance created remove the files of directories without
>  any notification
What? This absolutely shouldn't happen. The only likely cause of file
deletion I can see is

a) the method #deleteUnwantedExternalPluginDirectories which is there
to make sure that no longer wanted plugins are removed and the makefile
will not try to build them.  It is only sent by
#generateExternalPlugins though, and no way should it happen just from
changing the platform name.

b) #deleteEntireGeneratedTree which is used only when you press the
'clean out' button. That is intended to remove all the generated files. 

> and it was difficult to know what is happening
>  because the instance created when opening
>  is VMMaker tool was a Win32VMMaker...
> (I don´t know if you will understand,... the implicit change
>  of the VMMaker to an instance of a more abstract class
>  without notification is not what I expected to happen).
When you start the tool it makes an instance of a subclass of VMMaker
matched to your platform. So, if you're running on Win32 you'll get a
Win32VMMaker as the default. Similarly on unix you get a UnixVMMaker.

Now an important difference between the Win32VMMaker and all the others
is that, for whatever reason, Andreas wanted to have the >generated<
code placed in the >same< directories as the hand-written platform
code. Take a look at the methods #sourceDirectory, pluginsDirectory etc
in Win32VMMaker and compare to the other versions. An interesting extra
point is that becasue of that the two #delete... methods mentioned
above are null and don't actually delete files! By making WinCEVMMaker
a subclass of Win32VMMaker you are inheriting these issues and that may
be part of the problem.

I've just tried adding a wince platform directory (the menu now has
wince as well as the others) and your changeset. I open a VMMakerTool
and set the platform to wince - the 'path to generated sources' changes
to platforms/wince as expected and no files get deleted or anything
like that. It generates what looks like a reasonable set of files; I
can't test since I don't have wince tools.

Perhaps if you can explain the file tree you have, _exactly_ how yo
used the tool and which files were deleted it might help me visualise
the problem. Right now I'm completely baffled.

tim
--
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Money can't buy love. But it CAN rent a very close imitation.



More information about the Squeak-dev mailing list