146 |
|
|
147 |
After you have made the new heap image, the new libraries are in a |
After you have made the new heap image, the new libraries are in a |
148 |
separate directory whose name is derived from the name of the heap |
separate directory whose name is derived from the name of the heap |
149 |
image. The "testrun" script that you also find here will run the heap |
image. The "testml" script that you also find here will run the heap |
150 |
image and instruct it to look for its libraries in that new library |
image and instruct it to look for its libraries in that new library |
151 |
directory. |
directory. |
152 |
"testrun" takes the name of the heap image as its single argument. It |
"testml" takes the name of the heap image as its single argument. It |
153 |
expects the library directory to be the one that makeml builds. |
expects the library directory to be the one that makeml builds. |
154 |
|
|
155 |
* Installing a heap image for more permanent use |
* Installing a heap image for more permanent use |
268 |
This mapping (from anchors to names in the boot directory) is the one |
This mapping (from anchors to names in the boot directory) is the one |
269 |
that will get frozen into the generated heap image at boot time. |
that will get frozen into the generated heap image at boot time. |
270 |
Thus, unless it is changed, CM will look for its libraries in the boot |
Thus, unless it is changed, CM will look for its libraries in the boot |
271 |
directory. The aforementioned "testrun" script will make sure that |
directory. The aforementioned "testml" script will make sure that |
272 |
the mapping is changed to the one specified in a new "pathconfig" file |
the mapping is changed to the one specified in a new "pathconfig" file |
273 |
which was created by makeml and placed into the test library |
which was created by makeml and placed into the test library |
274 |
directory. It points all anchors to the corresponding entry in the |
directory. It points all anchors to the corresponding entry in the |
275 |
test library directory. Thus, "testrun" will let a new heap image run |
test library directory. Thus, "testml" will let a new heap image run |
276 |
with its corresponding new libraries. |
with its corresponding new libraries. |
277 |
|
|
278 |
Normally, however, CM consults other pathconfig files at startup -- |
Normally, however, CM consults other pathconfig files at startup -- |
290 |
before making the heap image. Therefore, heap images generated by |
before making the heap image. Therefore, heap images generated by |
291 |
makeml will look for their global pathconfig file in |
makeml will look for their global pathconfig file in |
292 |
|
|
293 |
`pwd`/../../stable-libs/pathconfig |
`pwd`/../../lib/pathconfig |
294 |
|
|
295 |
For example, I always keep my "good" libraries in |
For example, I always keep my "good" libraries in `pwd`/../../lib -- |
296 |
`pwd`/../../stable-libs and let the pathconfig file point its anchors |
where both the main "install" script and the "installml" script (see |
297 |
to the members of that directory. |
below) also put them -- so I don't have to do anything special about |
298 |
|
my pathconfig file. |
299 |
|
|
300 |
Once I have new heap image and libraries working, I replace the old |
Once I have new heap image and libraries working, I replace the old |
301 |
"good" image with the new one: |
"good" image with the new one: |
304 |
|
|
305 |
and then: |
and then: |
306 |
|
|
307 |
rm -r ../../stable-libs/*.cm |
rm -r ../../lib/*.cm |
308 |
mv <image>.libs/*.cm ../../stable-libs |
mv <image>.libs/*.cm ../../lib |
309 |
|
|
310 |
|
For convenience, there is a script called "installml" that automates |
311 |
|
this task. Using the script has the added advantage that it will not |
312 |
|
clobber libraries that belong to other than the current architecture. |
313 |
|
(The rather heavy-handed "rm/mv" approach above will delete all stable |
314 |
|
libraries for all architectures.) |
315 |
|
|
316 |
Of course, you can organize things differently for yourself -- the |
Of course, you can organize things differently for yourself -- the |
317 |
path configuration mechanism should be sufficiently flexible. |
path configuration mechanism should be sufficiently flexible. |