[MLton] Re: exene example

Matthew Fluet fluet@cs.cornell.edu
Wed, 31 Aug 2005 19:27:41 -0400 (EDT)


>> If you need to make further modifications to the Basis Library or the CML 
>> Library, you will need to do "make basis libraries" afterward to propagate 
>> your changes to the build/lib/sml directory, which is where $(SML_LIB) will 
>> be pointing.  That will be much quicker than "make all".
>
> I did indeed also update the paths in the basis library and cml library mlbs 
> so that everything would be consistant (though incorrectly).

Ah, o.k.  I suppose that works, but you would need to eventually go back 
and undo all those changes when you want to integrate into the main MLton 
development.  (Likewise, it makes it hard to share code, because I don't 
have a /homes/lziarek/ directory.)

> However, the 
> error you found is still the cases, because the paths in the cml.mlb and 
> core-cml.mlb pointed to
> ../../../build/lib/sml/basis/basis.mlb
> ../../../build/lib/sml/basis/mlton.mlb
> which will be out of date without a make-basis correct?

Yes, /build/lib/sml/basis is copied from /basis-library by 'make basis'. 
So, it might be out of date with respect to the changes you've made to 
/basis-library.  But I still would suggest not pointing core-cml.mlb 
relatively to build/lib/sml/basis/basis.mlb.

> Hence the duplicate 
> definitions of everything (the eXene paths pointed to 
> mlton/basis-library/...).

Yes, you never want to include the Basis Library along two different 
paths.  I think using $(SML_LIB) is the best way to ensure this, but you 
could use absolute and relative paths so long as they expanded to the same 
path.