For ObjectStudio 8.3 we moved all Smalltalk source code that was still file based into Store, which gives us a much nicer source code control mechanism. For release versions we save the proper version of the code into a parcel file for distribution, and parcels load very quickly at runtime. We encountered one problem with this though – it was tough getting the load order right for OLE. Our OLE code has some highly order dependent initialization. For one example, OLEConstants must be initialized first, then a hierarchy of Structure subclass definitions that need OLEConstants (or other Structures), and then the external procedure definitions that need those Structures. To get it all to load properly we found that we had to do some investigation into how to manage load order issues using the VisualWorks source code control mechanisms that are now part of ObjectStudio 8, and we’d like to pass what we learned on to you.

Advertisements